冒泡排序、选择排序和插入排序--由小到大,,由大到小
2016-03-15 21:56
344 查看
//选择排序 #include <iostream> #include <stdio.h> //-------------------------------------------------------------------- //从大到小排序 冒泡排序 void sort_bubble_down(int* a,int len) { int temp = 0; int i = 0; int j = 0; for(i=0;i<len;i++) { for(j=i+1;j<len;j++) { if(a[i]<a[j]) { temp = a[i]; a[i] = a[j]; a[j] = temp; } } } } //从小到大排序 冒泡排序 void sort_bubble_up(int* a,int len) { int temp = 0; int i = 0; int j = 0; for(i=0;i<len;i++) { for(j=i+1;j<len;j++) { if(a[i]>a[j]) { temp = a[i]; a[i] = a[j]; a[j] = temp; } } } } //-------------------------------------------------------------------- //从小到大排序 选择排序 void sort_select_up(int* a,int len) { int i = 0; int j = 0; int k = 0; for(i=0;i<len;i++) { k = i; for(j=i+1;j<len;j++) { if(a[k]>a[j]) { k = j; } } if(i!=k) { a[i] = a[i]+a[k]; a[k] = a[i]-a[k]; a[i] = a[i]-a[k]; } } } //从大到小排序 选择排序 void sort_select_down(int* a,int len) { int i = 0; int j = 0; int k = 0; for(i=0;i<len;i++) { k = i; for(j=i+1;j<len;j++) { if(a[k]<a[j]) { k = j; } } if(i!=k) { a[i] = a[i]+a[k]; a[k] = a[i]-a[k]; a[i] = a[i]-a[k]; } } } //-------------------------------------------------------------------- //从小到大排序 插入排序 void sort_insert_up(int* a,int len) { int i = 0; int j = 0; int k = 0; int temp = 0; for(i=1;i<len;i++) { k = i; temp = a[k]; for(j=i-1;j>=0;j--) { if(a[j]>temp) { a[j+1] = a[j]; k = j; //记下移动的位置 } } a[k] = temp;//插入 } } //从大到小排序 插入排序 void sort_insert_down(int* a,int len) { int i = 0; int j = 0; int k = 0; int temp = 0; for(i=1;i<len;i++) { k = i; temp = a[k]; for(j=i-1;j>=0;j--) { if(a[j]<temp) { a[j+1] = a[j]; k = j; //记下移动的位置 } } a[k] = temp;//插入 } } //-------------------------------------------------------------------- int main(int argc, char *argv[]) { int array[10] = {0}; int index = 0; int i = 0; printf("please input 10 number!\n"); while((scanf("%d",&array[index]) != EOF)&&(getchar()!='\n')) { index++; } printf("index = %d\n",index); for(i=0;i<=index;i++) { printf("%dth : %d\n",i,array[i]); } printf("down...\n"); sort_insert_down(array,index+1); for(i=0;i<=index;i++) { printf("%dth : %d\n",i,array[i]); } printf("up...\n"); sort_insert_up(array,index+1); for(i=0;i<=index;i++) { printf("%dth : %d\n",i,array[i]); } return 0; }
相关文章推荐
- poj2352+2481 stars+cows 树状数组
- Parcelable 序列化和反序列化
- 内连接,外连接,交叉连接
- POJ 3349-Snowflake Snow Snowflakes-字符串哈希
- 检测光纤的同心性
- oracle Long数据类型总结
- EventBus3.0最新使用文档详解
- 手机通过wifi访问电脑的共享文件
- ViewPager详解(三)——自动轮播图片小于三张的问题解决
- 一张图解AlphaGo原理及弱点
- PAT 1007. Maximum Subsequence Sum (25)
- 一张图解AlphaGo原理及弱点
- 函数对象/仿函数
- ViewPager详解(三)——自动轮播图片小于三张的问题解决
- ubantu配置nginx绑定域名以及与node.js的相互配合
- 所有CM_消息的说明
- 一张图解AlphaGo原理及弱点
- 聚集索引
- Android课程---第一课
- Dnw下载工具还是Linux下的好(For smart210)