java冒泡排序
思路一:第一层循环先确定总共要循环的次数, 由于每次只能得到一个最大的或者最小的,所以外循环的次数就是 长度-1。第二层循环是得到这个最小值所需要的比较次数,比如1,2,3,4只需要两两比较三次,所以是长度-i-1.
public static void maopao(int[] li){
// 冒泡排序
// 先排出大的
for (int i = 0; i < li.length-1; i++) {
for (int j = 0; j < li.length-1-i; j++) {
if (li[j]>li[j+1]){
int temp = li[j];
li[j] = li[j+1];
li[j+1] = temp;
}
}
}
// 先排出小的
for (int i = 0; i < li.length-1; i++) {
for (int j = i+1; j < li.length; j++) {
if (li[i]>li[j]){
int temp = li[i];
li[i] = li[j];
li[j]=temp;
}
}
}
for (int i = 0; i < li.length; i++) {
System.out.print(li[i]+"\t");
}
}
public static void main(String[] args) {
int[] li = {56,21,78,-1,-78,0,88,88,3,2,66};
maopao(li);
}
输出为-78 -1 0 2 3 21 56 66 78 88 88
浙公网安备 33010602011771号