整数排序

来源:互联网 发布:淘宝网店装修策略 编辑:程序博客网 时间:2024/05/23 10:43

题目:

给一组整数,按照升序排序,使用选择排序,冒泡排序,插入排序或者任何 O(n2) 的排序算法。

样例

对于数组 [3, 2, 1, 4, 5], 排序后为:[1, 2, 3, 4, 5]

思路:

运用直接插入排序的算法。从数组的第二个元素开始,和它前面的元素比较,如果该元素小就将前面的元素后移,直到没有比它小的元素赋值到这个位置。如此进行的到最后一个元素就完成了整个排序。

代码:

class Solution {
public:
    /**
     * @param A an integer array
     * @return void
     */
    void sortIntegers(vector<int>& A) {
        // Write your code here
        int n=A.size()-1;
        for(int i=1;i<=n;i++)
        {
           int x=A[i];
           int j=i-1;
           while(x<A[j]&&j!=-1)
           {
               A[j+1]=A[j];
               j=j-1;
           }
           A[j+1]=x;
        }
    }
};

感想:

直接插入排序就是从第二个元素开始,一个元素一个元素的比较,移动,虽然时间复杂度较大但是非常好理解。

原创粉丝点击