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

    # 基本思想

            每一步将一个待排序的记录,插入到前面已经排好序的有序序列中去,直到插完所有元素为止。

    插入排序

    # C++代码

    #include<iostream>
    #include<vector>
    using namespace std;
    
    void insertSort(vector<int> vec)
    {
        if(vec.size()>0)
        {
            for(int i=1;i<vec.size();++i)
            {
                int j = i;
    
                while(j-1>=0 && vec[j-1]>vec[j])
                {
                    vec[j-1] = vec[j-1]+vec[j];
                    vec[j]   = vec[j-1]-vec[j];
                    vec[j-1] = vec[j-1]-vec[j];
                    --j;
                }
            }
    
            for(int i=0;i<vec.size();++i)
                cout<<vec[i]<<endl;
        }
    
    }
    int main()
    {
        vector<int> vec={9,3,1,4,2};
        insertSort(vec);
        return 0;
    }

    #性能分析

    • 稳定性:稳定
    • 适用性:顺序存储和链式存储的线性表。
    • 空间效率:O(1)
    • 时间效率:最好O(n),最差O(n2)

       

  • 相关阅读:
    小程序模板
    小程序 if else
    小程序入门小知识
    懒加载
    展示效果
    五星评价
    萤火虫效果
    下雪效果
    选项卡
    VUE组件中 data 里面的数据为什么要return 出来
  • 原文地址:https://www.cnblogs.com/wanglei5205/p/8724193.html
Copyright © 2011-2022 走看看