第16周实践项目-选择排序之直接选择排序
2015-12-14 16:26
429 查看
问题
代码
运行结果
/* *Copyright (c) 2015,烟台大学计算机学院 *All rights reserved. *文件名称:test.cpp *作者:王敏 *完成日期:2015年12月14日 *版本号:v1.0 * *问题描述:用直接选择排序法对序列进行排序 *输入描述:无 *程序输出:排序后的序列 */
代码
#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; }
运行结果
相关文章推荐
- 整数的二进制表示中1的个数
- quake3 code 源代码 编译调试。保证通过。
- 实现WordPress主题侧边栏切换功能的PHP脚本详解
- 7 Steps for becoming Deep Learning Expert
- 第14周项目2二叉排序树中查找的路径
- SQLITE 在 ANDROID 中的详细使用
- 数据科学家必知必会的7款Python工具,你会几个?
- 十六周 项目1直接插入排序
- 第十四周项目3 二叉排序树
- 第十六周项目1(3)-冒泡排序
- JAVA 排序方法整理
- Navicat 链接虚拟机MySQL失败(GRANT ALL PRIVILEGES)
- C++ ERROR redefinition of ‘class ***’
- ios Core Data
- ppDelegate的相关介绍
- 观 万物理论 有感
- 从头开始写框架(二):孕育框架的种子_中
- 项目1.4 堆排序
- 第十三周 kruskal 算法
- 我的第一个基于python的socket程序