直接插入排序算法
2011-11-26 16:12
99 查看
//编写一个插入排序的算法,并且在main函数中验证其功能已实现 #include<iostream> using namespace std; const int maxsize=100; //排序表容量,假设为100 typedef int datatype; typedef struct { datatype key; //关键字域 datatype other; //其他域 } rectype; //记录类型 typedef rectype list[maxsize+1]; //排序表类型,0号单元不用 void InsertSort(list R,int n) { int i,j; for(i=2;i<=n;i++) //依次插入R[2],R[3],、、、R { //R[i]大于有序区最后一个记录,则本躺不需要插入 if(R[i].key>=R[i-1].key) continue; R[0]=R[i]; //保存R[i]的副本 j=i-1; do //查找R[i]的插入位置 { R[j+1]=R[j];j--; //记录后移,继续向前搜索 } while(R[0].key<R[j].key); //当搜索到完后退出循环 R[j+1]=R[0]; //插入R[i] } } int main() { list R; const int n=10; cout<<"输入所有数据的关键字:"<<endl; for(int i=1;i<=n;i++) { cin>>R[i].key; } cout<<"调用直接插入排序函数InsertSort:"<<endl; InsertSort(R,n); cout<<"输出排序后的关键字:"<<endl; for(int i=1;i<=n;i++) cout<<R[i].key<<" "; system("pause"); return 0; }
相关文章推荐
- 各种排序算法汇总(插入排序:直接插入排序、折半插入排序、希尔排序)
- 直接插入排序算法
- 直接插入排序算法
- 排序算法——插入排序(直接插入排序、折半插入 4000 排序、希尔排序)
- 排序算法之直接插入
- 直接插入排序算法
- 第十五周项目1(2)--验证直接插入排序算法
- 排序算法二:直接插入排序
- js实现排序算法(冒泡排序,直接插入排序)
- 排序算法(一):插入排序(直接插入排序、希尔排序)
- 排序算法(2)-直接插入排序
- 第十六周项目1 直接插入排序算法
- 软考二进宫-排序算法-直接插入、直接选择
- 【算法系列】排序算法(2)直接插入排序
- 排序--直接插入排序算法
- 排序算法之直接插入排序
- 排序算法——直接插入法排序
- 排序算法【java实现】(一)直接插入排序
- 排序算法系列——直接插入排序
- C语言8种排序算法及其实现 1.希尔排序 2.二分插入法 3.直接插入法 4.带哨兵的直接排序法 5.冒泡排序 6.选择排序 7.快速排序 8.堆排序