冒泡排序
n个数,需要比较n-1轮,n(n-1)/2次
比较数组中相邻两个数的大小,如果第一个数比第二个数大,那么交换他们的位置
第一轮比较找出最大的那个数,放在最右边
第二轮比较找出第二大的数放在倒数第二个的位置,因为第一轮已经找到最大的数了
每轮比较都会产出一个最大或者最小的数字,而下一轮就可以减少一次比较,直到循环结束
代码实现
public static int[] sort(int[] array) { //定义一个临时变量 int temp = 0; //确定需要比较多少轮,因为剩下一个数不需要比,所以是n-1 for (int i = 0; i < array.length - 1; i++) { //每比完一轮少比较一个数i for (int j = 0; j < array.length - 1 - i; j++) { //比较相邻两个数的大小,大的放后面,小的放前面 if (array[j+1] < array[j]) { temp = array[j + 1]; array[j + 1] = array[j]; array[j] = temp; } } } return array; }