冒泡排序
- 冒泡排序是最为出名的排序算法之一,总共有八大排序
- 冒泡的代码还是相当简单的,两层循环,外层冒泡数轮数,里层依次比较。
- 我们看到嵌套循环,应该立即可以得出这个算法的时间复杂度为O(n2)。
- 冒泡排序的主要思路如下:
图片解说:
代码解说(用冒泡排序实现将一组数将从大到小排列):
public class Bubble {
public static void main(String[] args) {
int[] a={1,2,3,456,343,345,23,657,646};
int[] sort = sort(a);//调用完我们自己写的排序方法以后,返回一个排序后的数组
System.out.println(Arrays.toString(sort));
}
//冒泡排序
//1、每次数组中,两个相邻的元素,如果第一个数比第二个数大,我们就交换他们的位置
//2、每一次比较,都会产生出一个最大,或者最小的数字。
//3、下一次则可以少一次排序。每次循环直到结束!
public static int[] sort(int[] array){
//外层循环,判断我们这个要走多少次
for (int i = 0; i < array.length-1; i++) {
//内层循环,比较两个数,如果第一个数比第二数大,则交换位置
for (int j = 0; j <array.length-1-i; j++) {
if(array[j+1]>array[j]){
int c=array[j];
array[j]=array[j+1];
array[j+1]=c;
/*如果后一个数比前一个数大,
则第一步 将前一个数array[j]赋值给工具人c
第二步 将后一个数array[j+1]赋值给array[j]
第三步 将工具人c现在的值赋值给后一个数array[j+1]
这样成功实现
*/
}
}
}
return array;
}
}