整数排序

来源:互联网 发布:网络销售工作总结 编辑:程序博客网 时间:2024/06/08 10:11

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

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

实现思路:我选用了直接插入排序算法,遍历数组,从A[i]开始往前比,如果遇到A[i]<A[i-1],那么交换两者并将i-1,直到i=0位置停止。

实现代码:

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

做题感想:一开始外层循环是从i=1开始的,只有64%数据能通过。

原创粉丝点击