仅用于个人复习。
第一次接触数组排序时老师讲的第一个方法就是 冒泡排序。
在百度上关于冒泡的简单描述:
它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名“冒泡排序”。
冒泡排序两个要点就是:a.循环嵌套+变量交换
b. 控制好两层循环的循环条件
上代码:
public class ArrayTest {
public static void main(String[]args){
//定义了一个int类型的数组
int[]array = new int[]{11,33,77,23,89,12,45,65};
//使用冒泡排序(升序)
//最外层循环控制遍历整个数组的次数
for(int i=0;i<array.length-1;i++){
//内循环控制相邻两个数组元素的比较
for(int x=0;x<array.length-i-1;x++){
//如果相邻的两个元素前者大于后者
if(array[x]>array[x+1]){
//使用第三个变量将双方交换
int temp = array[x];
array[x]=array[x+1];
array[x+1] = temp;
}
}
}
for(int arrays:array){
System.out.println(arrays);
}
}
}
关于时间复杂度的问题就不再写了。