第15周上机实践项目1 - 验证算法(2)
2015-12-07 16:29
344 查看
1问题及代码:
运行结果:
知识点总结:
插入排序之直接插入排序。
/* *Copyright(c)2015,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:test.cpp *作者:颜肖璇 *完成日期:2015年12月7日 *版本号:v1.0 *问题描述: 2、直接插入排序 请用直接插入排序算法,完成序列{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 InsertSort(RecType R[],int n) //对R[0..n-1]按递增有序进行直接插入排序 { int i,j; RecType tmp; for (i=1; i<n; i++) { tmp=R[i]; j=i-1; //从右向左在有序区R[0..i-1]中找R[i]的插入位置 while (j>=0 && tmp.key<R[j].key) { R[j+1]=R[j]; //将关键字大于R[i].key的记录后移 j--; } R[j+1]=tmp; //在j+1处插入R[i] } } 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"); InsertSort(R,n); printf("排序后:"); for (i=0; i<n; i++) printf("%d ",R[i].key); printf("\n"); return 0; }
运行结果:
知识点总结:
插入排序之直接插入排序。
相关文章推荐
- 第十五周 项目1 - 验证算法
- 【OpenCV】How to Use Tesseract with C++ or OpenCV
- Linux驱动修炼之道-SPI驱动框架源码分析(中)
- ActiveMQ入门实例
- linux: 几个常用makefile模板(动态库、静态库、可执行程序)
- 我的 FPGA 学习历程(08)—— 实验:点亮单个数码管
- 修改虚机IP
- 修改SSH登录密码
- 第十五周项目--哈希表及其运算的实现
- 第十四周 项目2 验证本周视频中所讲过的算法
- Java分布式事务-转载
- dijit/layout/TabContainer的用法
- Android 一个改善的okHttp封装库
- 文MRC/ARC通用的weakify和strongify
- android(37)(绑定远程服务)
- Java多线程简单介绍-1
- css reset
- Linux下自动清除MySQL日志文件
- 数据结构实践——Dijkstra算法的验证
- 第14周项目1(2)验证分块查找算法