插入排序
以升序为例,插入排序的思路是:
遍历数组时,每一次和前一个数做比较,如果前一个数比他大
就进入替换状态,不断的把前面比他大的数做交换,直到没有为止
比如1,4,3,2
开始遍历,3和4交换,变成 1,3,4,2
4和2交换,变成 1,3,2,4,发现前一个数比它大,继续交换 1,2,3,4
排序完成
来一段网上流传比较广的代码:
void InsertionSort(int[] array) { for (int i = 1; i < array.Length; i++) { if (array[i - 1] > array[i]) { int temp = array[i]; int j = i; while (j > 0 && array[j - 1] > temp) { array[j] = array[j - 1]; j--; } array[j] = temp; } } }
void Test() { var array = new int[] { 1, 4, 3, 2 }; InsertionSort(array); Debug.Log("Final: " + string.Join(",", array.Select(m => m.ToString()).ToArray()));//1,2,3,4 }