黑马程序员技术交流社区

标题: 各种排序算法【资源分享】 [打印本页]

作者: 呀嘛咕    时间: 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