朝花夕拾之几大基础排序算法
算法从来不是死记硬背,而是要知道它背后需要解决什么样的问题,为什么这样设计, 选择排序其实就是挨个查找最小元素的索引,然后交换之。先看图: 12345678910111213141516template<typename T>void selectionSort(T arr[], int n) { for (int i = 0; i < n; i++) { //寻找在[i,n)之间的最小值的索引 int minIndex = i; for (int j = i+1; j < n; j++) { if (arr[j] < arr[minIndex]) { minIndex = j; } } swap(arr[i], arr[minIndex]); }} 插入排序 1234567891011121314template<typename T > void insertSort(T arr[], int n) { ...




