zoukankan      html  css  js  c++  java
  • 插入排序的C++实现

    直接插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。

    这个算法比较简单,不需要过多的解释,代码如下:

     1 /*
     2  * insert the value which is at the index index in data
     3  */
     4 void insert_sort(int *data, int index, int value)
     5 {
     6     int temp_index = index;
     7     for(int i = 0;i < index;++i)
     8     {
     9         //find the first value that bigger than the passed value
    10         if(value < data[i])
    11         {
    12             temp_index = i;
    13             break;
    14         }
    15     }
    16 
    17     int temp = index;
    18     while(temp > temp_index)  //right shift one number from the temp_index
    19         data[temp] = data[--temp];
    20     data[temp_index] = value;
    21 }

    以下是测试:

     1 int main()
     2 {
     3 //    int data[] = {3,2,6,1,30,-3};
     4     int data[] = {5,4,3,2,1,0};
     5     int length = 6;
     6     for(int i = 1;i < length;++i)
     7         insert_sort(data,i,data[i]);
     8 
     9     for(int i = 0;i < length;++i)
    10         cout << data[i] << "  ";
    11     cout << endl;
    12     return 0;
    13 }

    结果如下:

  • 相关阅读:
    Mvc 简单分页代码
    算法
    atx
    Java8函数式编程(A)
    axios
    props
    vue 的keep alive使用注意项
    android帮助
    testng监听器方法执行顺序
    常用正则表达式
  • 原文地址:https://www.cnblogs.com/rio2607/p/4579512.html
Copyright © 2011-2022 走看看