常用的排序算法
来源:互联网 发布:为什么何炅是Gay知乎 编辑:程序博客网 时间:2024/06/01 09:13
1.Bucket Sort:
#include<stdio.h>/*简化版桶排序*/ int book[11]={0};int main(int intval,char **charval){ int i,j,t; printf("请输入0到10之间的5个数字数字:\n"); for(i=0;i<5;++i) { scanf("%d",&t); book[t]++; } for(i=0;i<=10;++i) { if(book[i]==0) continue; for(j=0;j<book[i];++j) printf("%-3d",i); } return 0;}
2.Buddle Sort:
#include<stdio.h>/*冒泡排序*/#define N 5int a[N]={0};void bubblesort(int left,int right)/*left为首元素下标,right为末元素下标*/ { int i,j,temp; for(i=left;i<=right;++i) for(j=left;j<right;++j) if(a[j]>a[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } return; }int main(int intval,char **charval){ int i; printf("请输入5个数:\n") ; for(i=0;i<N;++i) scanf("%d",a+i); bubblesort(0,N-1); for(i=0;i<N;++i) printf("%d ",a[i]); return 0;}
3.Quick Sort:
#include<stdio.h>/*快速排序*/#define N 5int a[N];void quicksort(int left,int right)/*left为首元素下标,right为末元素下标*/{ int i,j,l,temp; if(left>right) return; l=a[left];/*选择基准数*/ i=left; j=right; while(i!=j) { while(l<=a[j]&&i<j) j--; while(l>=a[i]&&i<j) i++; if(i<j) { temp=a[i]; a[i]=a[j]; a[j]=temp; } } a[left]=a[i];/*下一轮基准数*/ a[i]=l; quicksort(left,i-1); quicksort(i+1,right); return; }int main(int intval,char **charval){ printf("请输入5个数:\n"); for(int i=0;i<N;++i) scanf("%d",a+i); quicksort(0,N-1); for(int i=0;i<N;++i) printf("%d ",a[i]); putchar('\n'); return 0; }
4.Selection Sort:
#include<stdio.h>/*选择排序*/#include<stdlib.h>#define N 5void selectionsort(int *p,int n){ int i,j,k,temp; for(i=0;i<n-1;++i) { k=i; for(j=i+1;j<n;++j) if(p[j]<p[k]) k=j; if(k!=i) { temp=p[k]; p[k]=p[i]; p[i]=temp; } } return;}int main(int intval,char *charval[]){ int *num; num=(int*)malloc(N*sizeof(int)); printf("输入五个数字\n"); register int i; for(i=0;i<N;++i) scanf("%d",num+i); selectionsort(num,N); printf("从小到大排序后\n"); for(i=0;i<N;++i) printf("%-3d",*(num+i)); free(num); printf("\n"); return 0;}
1 0
- 常用的排序算法
- 常用的排序算法
- 常用的排序算法
- 常用的排序算法
- 常用的排序算法
- 常用的排序算法
- 常用的排序算法
- 常用的排序算法
- 常用的排序算法
- 常用的排序算法
- 常用的排序算法
- 常用的排序算法
- 常用的排序算法
- 常用的排序算法
- 常用的排序算法
- 常用的排序算法
- 常用的排序算法
- 常用的排序算法
- Programming Scala第6章 demo01 将函数作为参数类型进行传递
- Error: socket hang up
- 软考终于结束!
- Visual Studio 特性进阶
- LeetCode:Implement Stack using Queues
- 常用的排序算法
- 异常处理
- ACM--模拟--湘大OJ 1184--A Love Letter--水
- recyclerview 相关资料
- 旋转数组的最小数字10
- Class.forName()用法详解
- 让HTML中的文本框<input type="text">中的文字垂直居中
- 3008
- 初识持续集成(Continuous Integration)