冒泡排序的基本思想:
相邻元素两两比较,大的放右边,小的放左边;第一轮比较完之后,最大值就已经确定,第二轮就可以少循环一次,后面以此类推,直到由小到大的顺序排序完成。
代码实现:
// 冒泡排序
public static void ArrayList(int[] array){
// 初始化指针
int temp = 0;
// 判断
boolean flag = false;
// 遍历循环多少遍
for (int i = 0; i < array.length-1; i++) {
//遍历次数组内容排序
for (int j = 0; j < array.length-1-i; j++) {
//如果前一个数组值大于后一个数组
if (array[j] > array[j+1]){
//判断符为true
flag = true;
//把两个值通过中间temp转换过来
temp = array[j+1];
array[j+1] = array[j];
array[j] = temp;
}
}
//如果判定符为false那就返回
if (!flag){
break;
}
//如果为true,那就把flag变为tru,继续进入循环
else {
flag = false;
}
}
}
测试:
public static void main(String[] args) {
int arr[] = {25,34,6,7,5,4,2,-1,119,1,3,2,-5,88,66,33};
ArrayList(arr);
System.out.println(Arrays.toString(arr));
测试结果:
算法时间复杂度:O(n)²