排序规则:
将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。
从头到尾依次扫描未排序序列,将扫描到的每个元素插入到有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面)。
时间复杂度
平均时间复杂度:O(n^2),最好情况:O(n),最坏情况:O(n^2)
using System; using System.Collections.Generic; using System.Globalization; using System.Text; namespace 排序算法 { class InsertSort { public static void Sort(int[] arr) { int n = arr.Length; for(int i = 1; i < n; i++) { int e = arr[i]; int j; for( j = i; j > 0; j--) { if(e < arr[j - 1]) { arr[j] = arr[j - 1]; } else { break; } } arr[j] = e; } } } }