冒泡排序
冒泡的代码还是非常简单的,两层循环,外层冒泡轮数,里层依次比较,江湖中人人皆知。
我们可以得出这个算法的时间复杂度为o(n2)
总的来说:
1、比较数组中两个相邻的元素,如果第一个数比第二个数大,我们就交换他们的位置。
2、每一次比较都会产生一个最大或者最小的数字。
3、下一轮则可以少一次排序。
4、依次循环,直到结束。
代码:
package array;
import java.util.Arrays;
public class Demo10 {
public static void main(String[] args) {
int[] a = {1,343,6,3,457,8,76,443};
int[] sort = sort(a);
System.out.println(Arrays.toString(sort));
}
public static int[] sort(int[] a) {
// 临时变量
int temp = 0;
// 外层循环,判断我们要走多少次
for (int i = 0; i < a.length - 1; i++) {
//内存循环判断数字大小
for (int j = 0; j < a.length - 1 - i; j++) {
if (a[j+1] > a[j]) {
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
return a;
}
}
结果为: