标签:
插入排序
插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
算法步骤:
1)将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。
2)从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。)
算法分析:
平均时间复杂度:O(n²)
空间复杂度:O(1) (用于记录需要插入的数据)
稳定性:稳定
以下代码仅供参考
1 public static void Main(string[] args) 2 { 3 int[] arrNumber = new int[] { 3, 2, 1, 4, 5, 6 }; 4 InsertSort(arrNumber); 5 foreach (int i in arrNumber) 6 { 7 Console.WriteLine(i); 8 } 9 Console.ReadKey(); 10 } 11 public static void InsertSort(int[] arrNumber) 12 { 13 for (int i = 1; i < arrNumber.Length; i++) 14 { 15 int temp = arrNumber[i]; 16 int j; 17 for (j = i; j>0&&arrNumber[j-1]>temp; j--) 18 { 19 arrNumber[j] = arrNumber[j - 1]; 20 } 21 arrNumber[j] = temp; 22 } 23 }
标签:
原文地址:http://www.cnblogs.com/BrokenIce/p/5426470.html