第十六周项目1(5)-直接选择排序
2015-12-14 16:44
127 查看
运行结果:
用序列{57, 40, 38, 11, 13, 34, 48, 75, 6, 19, 9, 7}作为测试数据,运行并本周视频中所讲过的算法对应 程序,观察运行结果并深刻领会算法的思路和实现方法:
(5)直接选择排序
运行结果:
用序列{57, 40, 38, 11, 13, 34, 48, 75, 6, 19, 9, 7}作为测试数据,运行并本周视频中所讲过的算法对应 程序,观察运行结果并深刻领会算法的思路和实现方法:
(5)直接选择排序
#include <stdio.h> #define MaxSize 20 typedef int KeyType; //定义关键字类型 typedef char InfoType[10]; typedef struct //记录类型 { KeyType key; //关键字项 InfoType data; //其他数据项,类型为InfoType } RecType; //排序的记录类型定义 void SelectSort(RecType R[],int n) { int i,j,k,l; RecType temp; for (i=0; i<n-1; i++) //做第i趟排序 { k=i; for (j=i+1; j<n; j++) //在当前无序区R[i..n-1]中选key最小的R[k] if (R[j].key<R[k].key) k=j; //k记下目前找到的最小关键字所在的位置 if (k!=i) //交换R[i]和R[k] { temp=R[i]; R[i]=R[k]; R[k]=temp; } printf("i=%d: ",i); for (l=0; l<n; l++) printf("%d ",R[l].key); printf("\n"); } } int main() { int i,n=10; RecType R[MaxSize]; KeyType a[]= {9,8,7,6,5,4,3,2,1,0}; for (i=0; i<n; i++) R[i].key=a[i]; printf("排序前:"); for (i=0; i<n; i++) printf("%d ",R[i].key); printf("\n"); SelectSort(R,n); printf("排序后:"); for (i=0; i<n; i++) printf("%d ",R[i].key); printf("\n"); return 0; }
运行结果:
相关文章推荐
- 1023. 组个最小数 (20)
- HDU 2577 dp 输入法切换最小次 两数组维护两种状态
- 【Javascript】保持先后顺序(操作符优先级)
- 英文邮件礼仪:向教授请教学术问题
- Android Stuido 导出 APK
- (第十六周项目4)英文单词的基数排序
- 第7周项目5 排队看病模拟
- 第16周、项目1—验证算法
- *第十六周*数据结构实践项目二【大数据集上排序算法性能的体验】
- 追问传统百货业:争做跨境电商,何必呢?
- 1022. D进制的A+B (20)
- (数据挖掘-入门-9)聚类
- JsonUtil.java
- 第9周SHH数据结构-【项目4-广义表算法库及应用(1)】
- 第十五周 项目3 归并排序算法的改进
- 第十六周项目--显示直接插入排序的过程
- 第十六周--验证算法(冒泡排序)
- android AndFix--热补丁框架
- 第14周1-(2)验证分块查找算法
- 第十五周项目7—选择排序之堆排序