写一个算法对 1,8,5,2,4,9,7 进行顺序排列并给出所使用的算啊,并简述算法实现原理及时间复杂度。
void insertion_sort(int[] unsorted) { for (int i = 1; i < unsorted.Length; i++) { if (unsorted[i - 1] > unsorted[i]) { int temp = unsorted[i]; int j = i; while (j > 0 && unsorted[j - 1] > temp) { unsorted[j] = unsorted[j - 1]; j--; } unsorted[j] = temp; } } } 使用插入排序来为这些数字排序, 插入排序的思想,就是从第二个数字开始,不断的找比前面数字小的数字,插入到前面去, 就像在玩扑克牌,不断的抽牌按从小到大的顺序插入到前面的牌中 时间复杂度O(N^2)