c语言排序(持续更新)
来源:互联网 发布:淘宝做单查号怎么查 编辑:程序博客网 时间:2024/05/16 14:20
因为作者正在持续学习,所以该博客将会持续更新
- 桶序法
- 冒泡法
- 简单排序法
- 直接插入法
- 希尔排序法
桶序法
#include <stdio.h>#define N 11int main(void){ int a[11]={1,4,3,6,1,8,9,10,22,33,12}; int b[101]={0};//数组b全部初始化为0 for (int i=0;i<N;i++){ b[a[i]]++; } for (int j=0;j<101;j++){ while(b[j]!=0){ printf("%d\t",j); --b[j]; } } getchar();}
冒泡法
#include <stdio.h>#define N 11int main(void){ int i,j; int a[11]={0,4,3,6,1,8,9,10,22,33,12}; //第一个作为一个交换介质 for (i=1;i<N;i++){ for (j=i;j<N;j++){ if (a[i]>a[j]) a[i]=a[i]+a[j]-(a[j]=a[i]); } } for (int i=1;i<N;i++){ printf("%d\t",a[i]); } getchar();}
简单排序
#include <stdio.h>#define N 11int main(void){ int i,j; int temp; int a[11]={0,4,3,6,1,8,9,10,22,33,12}; //第一个作为一个交换介质 for (i=1;i<N;i++){ a[0]=a[i]; for (j=i+1;j<N;j++){ if (a[0]<a[j]){ a[0] = a[j]; temp = j; } } if(a[i] != a[0] ) a[i] = a[temp] + a[i]-(a[temp] = a[i]); } for (int i=1;i<N;i++) printf("%d\t",a[i]); getchar();}
直接插入排序法
#include <stdio.h>#define N 11int main(void){ int i,j; int a[11]={0,4,3,6,1,8,9,10,22,33,12}; for (i=2;i<N;i++){ if( a[i] > a[i-1]) { a[0] = a[i]; for (j = i-1;a[j]<a[0];j--) a[j+1] = a[j];//后移 a[j+1] = a[0]; } } for (int i=1;i<N;i++) printf("%d\t",a[i]); getchar();}
希尔排序法
#include <stdio.h>#define N 11int main(void){ int i,j; int d,x; int a[11]={0,4,3,6,1,8,9,10,22,33,12}; d = N/2; //计算第一次的增量 while(d>=1){ for ( i = d; i < N; i++){ x = a[i]; //获取序列中的写一个数据 j = i-d; //序列中前一个数据的序号 while(j>0 && a[j]>x){ //下一个数大于前一个数 a[j+d] = a[j]; //将后一个数向前移动 j -= d; //修改序号,继续向前比较 } a[j+d] = x; //保存数据 } d /= 2; //缩小增量 } for ( i =0; i<N; i++) printf("%d\t",a[i]); getchar();}
希尔排序(自己理解之后写的)
#include <stdio.h>#define N 11int main(void){ int i,j; int d,x; int a[N]={11,33,29,6,1,8,9,10,22,3,12}; d = N/2; while(d>=1){ for (i = 0; i<= d;i++){ for (x = 0;x<N-d;x++) if(a[x]>a[x+d]) a[x] = a[x]+a[x+d]-(a[x+d]=a[x]); } d /=2; } for ( i =0; i<N; i++) printf("%d\t",a[i]); getchar();}
阅读全文
0 0
- c语言排序(持续更新)
- C语言学习笔记(持续更新)
- C语言学习笔记(持续更新)
- c语言练习题(持续更新中)
- 常见排序算法的C语言实现以及算法复杂度分析(持续更新)
- C语言版各种排序算法(持续更新中)
- c语言编程时常见错误(持续更新)
- C语言小问题解决方案(持续更新)
- C语言常见错误提示(持续更新)!
- C 语言的若干问题(持续更新中)
- C语言中的那些库函数(持续更新中)
- 单链表常见习题及C语言实现(持续更新)
- 编程原则 - C 语言(持续更新...)
- c 语言经典算法,持续更新
- c/c++语言小知识(持续更新)
- C语言编程好习惯(持续更新)
- C语言小知识--持续更新
- C语言字符串常用操作(持续更新...)
- UVA 699 The Falling Leaves(二叉树|DFS)
- Java注解基础概念总结
- LeetCode--Validate Binary Search Tree(二叉搜索树)
- mongodb 使用$lookup做多表关联处理
- Swiper轮播
- c语言排序(持续更新)
- 【BZOJ4034】【HAOI2015】树上操作
- 初识kotlin—2、数据类型
- 京东2018校招Web前端工程师笔试有感
- Heapster介绍
- linux后台执行命令--nohup &
- 小小Java面试题(三)
- Binder机制
- 堆内存和栈内存