论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > C语言程序设计教程
Tag:新手,函数,指针,数据类型,对象,Turbo,入门,运算符,数组,结构,二级,,tc,游戏,试题,问答,编译,视频教程

C语言_排序程序代码参考_C语言教程

文章类别:C语言程序设计 | 发表日期:2010-10-16 8:58:43

C语言_排序程序代码参考_C语言教程

这是冒泡法的程序

#include

void sort(int array[],int size)

{

int i,j,temp;

/*下面是利用相邻的比较,把大的数放到上面;*/

for(i=0;i

for(j=i+1;j

if(array[i]>array[j])

{

temp=array[i];

array[i]=array[j];

array[j]=temp;

}

}

void main()

{

int i;

int a[10]={1,33,78,34,787,213,132,35,32,21};

sort(a,10);

for(i=0;i<10;i++)

printf(%6d,a[i]);

}

这是选择法的程序:

#include

void sort(int array[],int size)

{

int i,j,k,temp;

for(i=0;i

{

k=i;

/*把最小的那一个数找出来,并且用a[k]记下来,然后与a[i]交换;*/

for(j=i+1;j

if(array[k]>array[j])

k=j;

temp=array[k];

array[k]=array[i];

array[i]=temp;

}

}

void main()

{

int a[]={12,43,54,23,32,65,87,2,34,54};

int i;

sort(a,10);

for(i=0;i<10;i++)

printf(%dt,a[i]);

}

这是一个快速排序的程序:

#include

void quick_sort(int array[],int first,int last)//first,last分别为数组下标的范围;

{

int temp,low,high,list_separator;

low=first;

high=last;

/*下面是比较数组中的大小,把数组中的数与中间数比较,大的放在后半部分,比中间数小的放在前半部分,*/

list_separator=array[(first+last)/2];//中间数;

do{

while(array[low]

low++;

while(array[high]>list_separator)// 中间数与后半部分比较;

high--;

if(low<=high)//前半部分与后半部分交换;

{

temp=array[low];

array[low++]=array[high];

array[high--]=temp;

}

}while(low<=high);

if(first

quick_sort(array,first,high);//利用递归的办法,实行循环;

if(low

quick_sort(array,low,last);//利用递归的办法,实行循环;

}



void main()

{

int a[9]={12,23,34,65,93,32,21,9,8};

quick_sort(a,0,8);

for(int i=0;i<9;i++)

printf(%dt,a[i]);

printf(n);

}

这是一个希尔排序的程序:

#include

void shell_sort(int array[],int size)

{

int temp,gap,i,flag;

gap=size/2;

do{

do{

flag=0;/*利用标记,使前半部分与后半部分的数都对应比较过,前半部分大于后半部分的交换,直到都比较过,并且前半部分的数小于与前部分一一对应的后部分的数时,退出while循环*/

for(i=0;i

if(array[i]>array[i+gap])

{

temp=array[i];

array[i]=array[i+gap];

array[i+gap]=temp;

flag=1;

}

}while(flag);

}while(gap=gap/2);

}

void main()

{

int array[]={1,2,32,43,64,7654,321,42,23,97,56,32,78,45,32},i;

shell_sort(array,15);

for(i=0;i<15;i++)

printf(%10d,array[i]);

 

我想看C语言视频教程

视频教程列表
文章教程搜索
 
C语言程序设计推荐教程
C语言程序设计热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058