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

     1 #define N 10
     2 
     3 #include <iostream>
     4 #include <cstdlib>
     5 #include <algorithm>
     6 #include <vector>
     7 
     8 using namespace std;
     9 
    10 void InsertionSort(vector<int> &intvec)
    11 {
    12     for (int j = 1; j < N; ++j)
    13     {
    14         int key = intvec[j];
    15         int i = j - 1;
    16         while (i >= 0 && intvec[i] > key)
    17         {
    18             int k = i + 1;
    19             intvec[k] = intvec[i];
    20             --i;
    21         }
    22         int k = i + 1;
    23         intvec.erase(intvec.begin() + k);
    24         intvec.insert(intvec.begin() + k, key);
    25     }
    26 }
    27 
    28 int main(void)
    29 {
    30     vector<int> intvec;
    31     cout << "Please Input " << N << " IntNum:" << endl;
    32     for (int i = 0; i < N; ++i)
    33     {
    34         int j;
    35         cin >> j;
    36         intvec.push_back(j);
    37     }
    38     InsertionSort(intvec);
    39     for (auto c : intvec)
    40     {
    41         cout << c << " ";
    42     }
    43     cout << endl;
    44     system("pause");
    45     return 0;
    46 }

    如下图所示:

      ①.整型3拷贝给key

      ②.与整型4做比较小于整型4,于是整型4向后移动,原整型3的前面没有任何元素,将key拷贝到整型3的位置

      ③.整型1拷贝给key

      ④.与整型4做比较小于整型4,于是整型4向后移,又与整型3做比较小于整型3,整型3向后移,原整形3前面没有任何元素,将key拷贝到整型3的位置

      ⑤.整型2拷贝给key

      ⑥.与整型4做比较小于整型4,于是整型4向后移,又与整型3做比较小于整型3,整型3向后移,与整形3前面的整型1做比较大于整型1,结束比较,将key拷贝到原整型3的位置

  • 相关阅读:
    Linux安装步骤
    Python邮件发送
    拉链表
    Hive
    Shell笔记
    Hadoop入门
    Thinkphp手把手练习
    Shell学习日记
    Linux安装mysql数据库
    Oracle集合操作
  • 原文地址:https://www.cnblogs.com/mubu/p/5779782.html
Copyright © 2011-2022 走看看