一.排序
1.冒泡排序
public static void bubbleSort(int[]array){ for (int i = 0; i < array.length; i++) { for (int j = i + 1; j < array.length; j++) { if(array[j] < array[i]){ int temp = array[j]; array[j] = array[i]; array[i] = temp; } } } }
原理:比较相邻元素大小并进行交换
平均时间复杂度:O(n^2)
空间复杂度:O(1)
2.选择排序
public static void selectionSort(int[]array){ for (int i = 0; i < array.length; i++) { int minIndex = i; for (int j = i + 1; j < array.length; j++) { if(array[j] < array[minIndex]){ minIndex = j; } } int temp = array[minIndex]; array[minIndex] = array[i]; array[i] = temp; } }
原理:每次选出最小(或最大)的元素交换后放在排序序列的起始位置,继续从剩下的未排序序列中选出最小(或最大)的元素放在排序序列的末尾,按此步骤继续下去,依次选出第1小,第2小。。。。第n小的元素
平均时间复杂度:O(n^2)
空间复杂度:O(1)
3.