三大基础算法之插入排序
一.插入排序(动图如下,帮助理解)
插入排序的意思也就是说,是从第二个元素开始循环后,对其每个元素与该元素之前一位的元素相对比,如果当前元素比上一个元素小的话,就将两个元素的位置对调.
直接上代码了
1 private static void InsertionSort(this int[] array) 2 { 3 //82, 22, 33, 12, 33, 44, 22, 34, 56 4 //22,82,33,12,33,44,22,34,56 5 //22,33,82,12,33,44,22,34,56 6 //12,22,33,82,33,44,22,34,56 7 int inner, temp; 8 for (int i = 1; i < array.Length; i++) 9 { 10 temp = array[i]; //将当前元素的值保存在这个变量当中 11 inner = i; //将当前下标保存起来,接下来需要用到
12 while (inner > 0 && array[inner - 1] >= temp) //判断该元素的前一位元素是否比当前元素的值更大 13 { 14 array[inner] = array[inner - 1]; 如果满足上述条件的话, 就会把上一位的元素移动到当前元素的位置上 15 inner--; //这里的--是为了当前元素与之前所有元素都要对比一次,结合上面的动图理解就好了 16 } 17 array[inner] = temp; 18 array.Show(); 19 } 20 }