排序(冒泡、直接插入、快速排序)
冒泡法 第1趟:依次比较0和1、1和2、2和3...n-2和n-1索引处的元素,发现前面的大于后面的,就交换它们,这样一趟下来,最大的元素排到了最后面。 第2趟:继续按照第1趟的做法再做一遍,一趟下来,第二大的元素排到了最后面。 ...... 这样经过n-1趟比较、交换,n个数据排序完毕。如果某一趟没有交换,表明已经排序完毕,可提前结束排序。 代码 int size = arr.length; for (int i = 0; i < size - 1; i++) { for (int j = 0; j < size - i - 1; j++) { if (arr[j] > arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } 冒泡排序最好的时间复杂度O(N);冒泡排序的最坏时间复杂度为O(N2)。 综上,因此冒泡排序总的平均时间复杂度为O(N2)。 直接插入法 第一趟:把第2个元素拿出来跟第1个元素对比,小的在前面、大的在后面。 第二趟:把第3个元素拿出来插入到前2个...








