//C语言 void insertSort(int *arr,int len) { int temp = 0; for(int i = 1;i < len;++i) { temp = arr[i]; int j = i - 1; while(j >= 0 && arr[j] > temp) { arr[j+1] = arr[j]; j--; } arr[j+1] = temp; } }
//C++ const size_t arraySize = 10; template<typename T> void insertSort(array<T, arraySize> &arr) { T temp;//临时保存待排序的元素 int j; for (int i = 1; i < arr.size(); ++i) {//从第二个元素开始排序 temp = arr[i]; j = i - 1; while (j >= 0 && arr[j] > temp) { arr[j + 1] = arr[j]; --j; } arr[j + 1] = temp;//放到for循环内 } }
稳定性:稳定
适合:基本有序的少量数据
时间复杂度