第十六周实践项目1—验证算法(3)直接选择排序
2015-12-14 16:25
330 查看
/* Copyright (c)2015,烟台大学计算机与控制工程学院 All rights reserved. 文件名称:项目1-3.cbp 作 者:刘晨筱 完成日期:2015年12月14日 版 本 号:v1.0 问题描述:用序列{57, 40, 38, 11, 13, 34, 48, 75, 6, 19, 9, 7}作为测试数据, 运行算法对应程序,观察运行结果并深刻领会算法的思路和实现方法: 输入描述:无 程序输出:测试数据 */
代码详情:
#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=12; RecType R[MaxSize]; KeyType a[]= {57, 40, 38, 11, 13, 34, 48, 75, 6, 19, 9, 7}; 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) 插入排序之直接插入排序
- 第十五周 项目二 用哈希法组织关键字
- WordCount程序详解
- libsvm处理多分类的问题
- js 时间 字符串
- React 入门实例教程
- linux 登陆key生成
- 第十五周 项目1 排序(堆排序)
- (第十六周项目1)验证算法
- 第一次上趣味编程
- 第十五周项目3 B-树的基本操作
- System.out.println(new String(buf,0,num));
- 第十六周--验证算法(快速排序)
- 大数据全栈式开发语言——Python
- springMVC.xml与springContext.xml关系与区别
- 第15周项目3B-树的基本操作
- PHP中单引号和双引号的区别
- IOS 蓝牙4.0(BLE 协议) 初窥
- python基础教程共60课-第40课用文件保存游戏2
- Formal sys-Pradicate semantic