第十五周 验证直接插入排序
来源:互联网 发布:安卓需要java什么基础 编辑:程序博客网 时间:2024/06/01 08:04
/*问题及代码 *Copyright(c)2016,烟台大学计算机学院 *All right reserved. *文件名称:直接插入排序.cpp *作者:李潇 *时间:12月17日 *版本号;v1.0 *问题描述: 请用直接插入排序的算法完成序列任意数列的排序。 *程序输入:随意输入一个数组 *程序输出:根据题目要求输出。*/
代码:
#include <stdio.h>typedef int KeyType;typedef int InfoType;typedef struct {KeyType key;InfoType data;}RecType;void TnsertSort(RecType R[],int n){int i,j,k;RecType tmp;for(i=1;i<n;i++){tmp=R[i];j=i-1;while(j>=0 && tmp.key<R[j].key){R[j+1]=R[j];j--;}R[j+1]=tmp; printf("i=%d: ",i); for (k=0; k<n; k++) printf("%d ",R[k].key); printf("\n");}}void show(RecType R[],int n){int i;for(i=0;i<n;i++)printf("%d ",R[i].key);printf("\n");}int main(){RecType r[10];int i;for(i=0;i<10;i++){scanf("%d",&r[i].key);}printf("排序的过程:\n"); TnsertSort(r,10);printf("输出直接插入排序后的数组\n"); show(r,10);return 0;}
运行结果:
心得体会:
在这里第一次遇到了 用scanf +空格循环输入一个数组时 必须多输入一个数才执行程序,而去掉空格或用cin,就不会出现这种情况。问了同学,百度了一下,又问了老师才知道原因是缓冲区的事情。
0 0
- 第十五周 验证直接插入排序
- 第十五周--项目4算法验证直接插入排序
- 【第十五周项目1 - 验证算法之直接插入排序】
- 【第十五周项目1 - 验证算法之直接插入排序】
- 第十五周项目1 验证算法(1)插入排序之直接插入排序
- 第十五周 项目1 直接插入排序
- 第十五周 项目4 直接插入排序
- 第十五周 项目2 插入排序之直接插入排序
- 第十五周实践项目1—验证算法(2)直接插入排序
- 第十五周项目1--验证算法--(2)直接插入排序
- 第十五周 项目1--验证算法--(2)直接插入排序
- 第十五周项目1 (2)——验证直接插入排序
- 第十五周项目1-(2)验证直接插入排序算法
- 第十五周项目1-验证算法(2)直接插入排序
- 第十五周项目1-验证算法(2-直接插入排序)
- 第十五周项目1 (2)——验证直接插入排序
- 第十五周项目1-验证算法(2)-直接插入排序
- 第十五周项目1-(2)验证直接插入排序算法
- OAI 完全搭建手册
- Java访问私有属性(不使用getter方法和反射)
- 超全局数组及外部变量
- 第十六周—C语言 项目三(点结构体)
- [Paper note] PVANET: Deep but Lightweight Neural Networks for Real-time Object Detection
- 第十五周 验证直接插入排序
- 内存对齐的规则以及作用
- 最大最小距离算法(Max-Min-diatance)
- D - Cable master POJ - 1064
- 红帽RHEL7版本RHCE认证学习及考试经历
- iOS开发之TouchId
- java 站位符
- nowcoder->翻转子串
- MySQL - 查询今天的数据(以及昨天、本月、上个月、今年...)