当前位置:   article > 正文

C++实现插入排序算法_c++实现直接插入排序的算法,并输出每一趟排序的结果。

c++实现直接插入排序的算法,并输出每一趟排序的结果。

插入排序算法的原理:从前往后依次把元素插入到相应的位置。比插入元素大的向后移一个单位,直到找到比其小或者相等的元素才停止循环,并把元素插入到当前位置。

时间复杂度:O(n^2)。以下为实现代码:

  1. #include <iostream>
  2. using namespace std;
  3. void sort(int *arr,int length)    //传入数组首地址和数组长度
  4. {
  5.     int cur, preindex;                 //定义要插入的值和比较元素的下标
  6.     for (int i = 1; i < length; i++)  //一共需要循环 n-1 轮
  7.     {
  8.         cur = arr[i];             //插入的元素
  9.         preindex = i - 1;         //从插入元素的前一个元素开始比较 
  10.         while (cur < arr[preindex] && preindex >= 0)  //若元素大于插入元素
  11.         {
  12.             arr[preindex + 1] = arr[preindex];       //元素向后移
  13.             --preindex;
  14.         }
  15.         arr[preindex + 1] = cur;       //把插入元素插到相应位置
  16.     }
  17. }
  18. int main()
  19. {
  20.     int arra[] = {12,12,54,1745,45,45,469,789,789};
  21.     int length = sizeof(arra) / sizeof(arra[0]);    //计算数组长度
  22.     sort(arra,length);                     //调用排序算法  
  23.     for (size_t i = 0; i < length; i++)    //输出排序后的数组
  24.         cout << arra[i] << " ";
  25.     system("pause");
  26.     return 0;
  27. }

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号