【排序算法】之直接插入排序
2012-11-13 15:09
288 查看
//C++ Builder 6.0
//C++ Language
//--------------------------------------------------------------------------- #include <iostream> #pragma hdrstop using namespace std; //--------------------------------------------------------------------------- #pragma argsused int main(int argc, char* argv[]) { void Insert_sort(int *x, int n); int num_x[]={12,34,5,7,90,30,44,6,100,6,5}; //待排序数组 int len_x=11;//待排序数组长度 Insert_sort( num_x, len_x); for (int i=0; i<len_x; i++) //打印排序结果 { cout<<num_x[i]<<','; } cout<<"End"; return 0; } //--------------------------------------------------------------------------- //插入排序:从小到大 //形参说明:x-数组;n-数组x的长度 void Insert_sort(int *x, int n) { int i,j,t; for (i=1; i<n; i++) { /* 暂存下标为i的数。注意:下标从1开始,原因就是开始时, 第一个数即下标为0的数,前面没有任何数,单单一个, 因为认为它是已经排好顺序的。 */ t = *(x+i); for (j=i-1; j>=0 && t < *(x+j); j-- ) { /* 注意:j=i-1,j--,这里就是下标为i的数, 在它前面有序列中找插入位置。 */ *(x+j+1) = *(x+j); /* 如果满足条件就往后挪。最坏的情况就是 t比下标为0的数都小,它要放在最前面, j==-1,退出循环 */ } *(x+j+1) = t; /*找到下标为i的数的放置位置*/ } } //---------------------------------------------------------------------------
相关文章推荐
- 01_程序员必须掌握的8大排序算法_直接插入排序
- 排序算法总结---直接插入排序
- 排序算法一:直接插入排序
- 排序算法之直接插入排序的思想以及Java实现
- 排序算法之直接插入排序(Java)
- 排序算法之直接插入排序
- 【数据结构】排序算法(一)之直接插入排序,冒泡排序
- 排序算法: 冒泡排序, 快速排序,希尔排序,直接插入排序 ,直接选择排序,归并排序,堆排序
- 数据结构与算法:七种排序算法总结(冒泡排序、选择排序、直接插入排序、希尔排序、堆排序、归并排序、快速排序)
- 五十道编程小题目 --- 28 八大排序算法 java 之 01直接插入排序
- 排序算法复习:直接插入排序、堆排序、快排、冒泡排序
- 排序算法(直接插入排序)
- 插入排序之直接插入排序算法-java实现
- 排序算法--直接插入排序、折半插入排序、希尔排序
- 排序算法之直接插入排序
- 排序算法(一)——直接插入排序
- 排序算法大集锦_插入类——直接插入排序
- 各种排序算法的实现直接插入排序
- 排序算法之直接插入排序
- 【排序算法】直接插入排序