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

    性能分析:

      时间复杂度:O(n^2)

      空间复杂度:O(1)

    但是综合来讲,要比冒泡排序和选择排序好一些。

     

    #include<iostream>
    #include<vector>
    using namespace std;
    
    int main()
    {
        // 首先找出待排序列中最小的数,然后用这个数和原序列中的第一个数交换位置;
        // 其次,找出第二小的和原第二个数交换位置;
        // 依次顺序直到找到第二大的数,之后原数列完全变成有序数列.
        int data[] = { 3,0,5,2,7,8,9,6,1 };
        //获取序列元素个数
        int length = 9;
        for (int i = 1; i < length; i++)
        {
            int key = data[i];
            int j = i -1;
            while (j >= 0 && data[j] > key)
            {
                data[j + 1] = data[j];//将比key值大的数往后移
                j--;
            }
            data[j + 1] = key;//将比key大的往后移之后,找到了要插入的位置,将key插入
        }
        for (int i = 0; i < length; i++)
        {
            cout << data[i] << "   ";
        }
    }
  • 相关阅读:
    Android开发之Sqlite的使用
    ZOJ 3607 Lazier Salesgirl
    ZOJ 3769 Diablo III
    ZOJ 2856 Happy Life
    Ural 1119 Metro
    Ural 1146 Maximum Sum
    HDU 1003 Max Sum
    HDU 1160 FatMouse's Speed
    Ural 1073 Square Country
    Ural 1260 Nudnik Photographer
  • 原文地址:https://www.cnblogs.com/masbay/p/14026562.html
Copyright © 2011-2022 走看看