バブルソーティング方法:キーワードが小さいレコードは次々と浮かび上がるようなものであり、より大きなキーワードを持つレコードは石が沈むようなものであり、各旅行で最大の石の1つが底に沈みます。
アルゴリズムの本質:(最大値が重要なポイントであり、最後に配置する必要があるので、ループはこのようなものです) 、そして最後のビットの進歩(つまり、最後の数字は比較に参加しなくなった最大値によって決定されたばかりで、比較の数は1増加します)
複雑さ:時間の複雑さO(N2)、空間の複雑さO(1)
Javaソースコード(正常に実行され、日付クラスが必要です)
コードコピーは次のとおりです。
public static void bubblesort(date [] days){
int len = days.length;
日付の温度;
for(int i = len-1; i> = 1; i-){
for(int j = 0; j <i; j ++){
if(days [j] .compare(days [j + 1])> 0){
temp = days [j + 1];
日[j + 1] =日[j];
日[j] =温度;
}
}
}
}
クラスの日付{
int year、month、day;
日付(int y、int m、int d){
year = y;
月= m;
day = d;
}
public int compare(日付){
return year> year?
:月>月<月<月数?
:day> day:day.day?
}
public void print(){
System.out.println(year + "" + month + "" + day);
}
}
コードコピーは次のとおりです。
パッケージtestsortalgorithm;
Public Class Bubblesort {
public static void main(string [] args){
int array [] = {5、6、8、4、2、4、9、0};
Bubblesort(配列);
for(int i = 0; i <array.length; i ++){
system.out.println(array [i]);
}
}
public static void bubblesort(int array []){
int temp;
for(int i = array.length-1; i> 0; i-){
for(int j = 0; j <i; j ++){
if(array [j]> array [j + 1]){
temp = array [j];
array [j] = array [j + 1];
配列[j + 1] = temp;
}
}
}
}
}