zoukankan      html  css  js  c++  java
  • 插入排序

    插入排序是一种简单的排序算法,由于每一个嵌套循环都花费N次迭代,因此插入排序的时间复杂度为O(N^2)。

    编码实现并测试:

    #include <iostream>
    #include <vector>
    
    using namespace std;
    
    template <typename Comparable>
    void insertionSort( vector<Comparable> &a )
    {
        int j;
    
        for ( int p = 1 ; p < a.size() ; p++ ){
            Comparable tmp = a[p];                          //保存当前元素值
            for ( j = p ; j > 0 && tmp < a[j - 1] ; j-- )   //通过循环将位置p之前比p大的元素都向右移一格
                a[j] = a[j - 1];
            a[j] = tmp;                                     //最后在适当的位置插入元素值.
        }
    }
    
    int main()
    {
        cout << "请输入一些数据:" << endl;
    
        vector<int> vec;
        int temp;
    
        while ( cin >> temp )
            vec.push_back( temp );
    
        insertionSort( vec );
    
        cout << "按降序排列过的数据如下:" << endl;
    
        vector<int>::iterator iter = vec.begin();
        while( iter != vec.end() )
            cout << *iter++ << endl;
    
        return 0;
    }
    我们一路奋战,不是为了改变世界,而是不让世界改变我们 ——《熔炉》
  • 相关阅读:
    网络运维架构
    Q in Q
    光纤/光模块的多模和单模
    Cisco VTP
    Cisco NTP配置
    惠普/aruba交换机
    【转】交换机背板带宽
    接入交换机下所有服务器不定时丢包
    windows 2012安装不了KB2919355
    Cisco交换机密码策略设置
  • 原文地址:https://www.cnblogs.com/ZRBYYXDM/p/5187045.html
Copyright © 2011-2022 走看看