直接插入排序
2016-06-13 13:33
281 查看
#include<stdio.h> #include<iostream> #include<algorithm> using namespace std; int main() { int a[11],num; for(int i = 0; i < 10; i ++) scanf("%d",&a[i]); sort(a,a + 10); ///已经存在的序列是排序好的 scanf("%d",&num); int k,t,s; if(num > a[9]) a[10] = num; else { for(int i = 0;i < 10;i ++) if(a[i] > num) { k = i; break; } for(int i = k;i < 11;i ++) { t = a[k]; a[k] = num; for(int j = i + 1;j < 11;j ++) { s = a[j]; a[j] = t; t = s; } break; } } for(int i = 0; i < 11; i ++) cout << a[i] << " "; cout << endl; return 0; }
第二种代码
#include<iostream> using namespace std; void InsertSort(int a[],int k) { int j; for(int i = 1;i < k;i ++)//循环从第2个元素开始 { //如果当前元素小于之前的元素,则进行交换 if(a[i] < a[i - 1]) { int temp = a[i]; //一直往前遍历,直到前面的元素比a[i]还要小或者到达边界则终止 for(j = i - 1;j >= 0 && a[j] > temp;j --) { a[j + 1] = a[j]; } a[j + 1] = temp;//此处就是a[j+1]=temp; } } } int main() { int a[]={98,76,109,34,67,190,80,12,14,89,1}; //获得数组的长度 int k=sizeof(a)/sizeof(a[0]); InsertSort(a,k); for(int i = 0;i < k;i ++) cout << a[i] << " "; cout << endl; return 0; }
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 如何组织构建多文件 C 语言程序(二)
- 关于指针的一些事情
- 如何写好 C main 函数
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua中调用C++函数示例
- Lua和C语言的交互详解
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C++高级程序员成长之路
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解