黑马程序员技术交流社区
标题:
各种排序算法【资源分享】
[打印本页]
作者:
呀嘛咕
时间:
2014-5-29 20:20
标题:
各种排序算法【资源分享】
平时候是直接用sort()的,好久没有写这些排序了。我们不能忘记他们的内部实现原理。
/* Note:Your choice is C IDE */
#include "stdio.h"
#include "stdlib.h"
//冒泡排序
void bubbling(int b[],int n){
int i,j,length=n-1,temp;
for(i=1;i<=length;){
for(j=i-1;j<length;j++){
if(b[j]>b[j+1]){
temp=b[j];
b[j]=b[j+1];
b[j+1]=temp;
}
}
length=j-1;
}
}
//选择排序
void select(int b[],int n){
int i,j,k,temp;
for(i=0;i<n-1;i++){
k=i;
for(j=i+1;j<n;j++){
if(b[k]>b[j]) k=j;
}
if(k!=i){
temp=b[k];
b[k]=b
;
b
=temp;
}
}
}
//插入排序
void insert(int b[],int n){
int i,t,j;
for(i=1;i<n;i++){
for(t=b
,j=i-1;j>=0&&t<b[j];j--){
b[j+1]=b[j];
b[j]=t;
}
}
}
//希尔排序
void shell(int b[],int n){
int h,j,k,y;
for(h=n/2;h>0;h=h/2){
for(j=h;j<n;j++){
y=b[j];
for(k=j-h;k>=0&&y<b[k];k=k-h){
b[k+h]=b[k];
b[k]=y;
}
}
}
}
//待写....................明天要考试
//快速排序
// void quick(int b[],int n){}
//堆排序
//void stack(int b[],int n){}
//归并排序
//combine(itn b[],int n){}
void main()
{
int a[8]={9,5,14,11,8,9,4,10};
int m=8,i,alter,show;
printf("before Sort:\n");
for(i=0;i<8;i++){
printf("%d\t",a
);
}
printf("\n**********************************\n");
printf("冒泡排序.....1\n");
printf("选择排序.....2\n");
printf("插入排序.....3\n");
printf("希尔排序.....4\n");
printf("退出.........0\n");
printf("**********************************");
do{
printf("\nPlease input your alter:");
scanf("%d",&alter);
switch(alter){
case 1:bubbling(a,m);
show=1;
printf("after bubbling sort:\n");
break;
case 2:select(a,m);
show=1;
printf("after select sort:\n");
break;
case 3:insert(a,m);
show=1;
printf("after insert sort:\n:");
break;
case 4:shell(a,m);
show=1;
printf("after shell sort:\n:");
break;
case 0:exit(0);
default:printf("input error!!!!!!!!");
show=0;
}
if(show!=0){
for(i=0;i<8;i++){
printf("%d\t",a
);
}
}
}while(alter!=0);
}
作者:
hengxing0079
时间:
2014-5-29 21:24
支持一下,收藏了!
作者:
AntThinking_toT
时间:
2014-5-29 21:43
好啊好啊
作者:
远行的人2号
时间:
2014-5-29 22:09
哎呦,不错
作者:
菠萝包丶
时间:
2014-5-30 12:26
顶一个吧,不过排版有点乱
作者:
为了心中的梦
时间:
2014-5-30 16:53
顶一个......
作者:
an1911
时间:
2014-5-30 17:15
学习学习。。。。。。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2