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

    /*
    * insertSort.cpp
    * 插入排序算法,算法导论P.10
    * 调用方法:vector<T> vec; insertSort(vec);
    * Created on: 2011-12-10
    * Author: LiChanghai
    */
    #include <vector>
    #include <iterator>
    using namespace std;

    template<typename T>
    void insertSort(vector<T> &array)
    {
    //定义变量暂存元素
    T key;

    //typename用于声明iterator是绑定到vector<T>的类型而不是数据
    typename vector<T>::iterator iter1, iter2;

    //从第二个元素开始遍历后面所有元素
    for(iter1=array.begin()+1 ; iter1 != array.end(); ++iter1)
    {
    key = *iter1; //将当前待插入元素暂存到key
    iter2 = iter1-1; //iter2指向当前元素的前一个位置

    //当iter2未超出前端界限且iter2所指的值大于key时
    while((iter2>=array.begin()) && key<*iter2)
    {
    *(iter2+1) = *iter2; //iter2指向的元素后移一个位置
    --iter2; //iter2指向前一个位置以继续判断
    }
    *(iter2+1) = key;
    }
    }
  • 相关阅读:
    归并排序算法
    交换排序算法
    插入排序算法
    DASCTF2021五月赛
    第二届newsctf
    山西省赛
    2021广东省第一届网络安全竞赛
    2021 DozerCTF
    2021-HSCTF re
    buuctf-re (持续更新)
  • 原文地址:https://www.cnblogs.com/haigege/p/2298479.html
Copyright © 2011-2022 走看看