首页 > 试题广场 >

写一个算法对 1,8,5,2,4,9,7 进行顺序排列并给出

[问答题]

写一个算法对 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)

发表于 2017-02-06 09:18:49 回复(0)