论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: 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语言程序设计 | 发表日期:2010-12-18 9:22:49

C语言教程-快速排序

21视频教程网收集整理

 

void quickSort(char* arr,int startPos, int endPos) 
{ 
int i,j; 
char ch; 
ch=arr[startPos]; 
i=startPos; 
j=endPos; 
while(i<j) 
{ 
while(arr[j]>=ch && i<j)--j; 
arr[i]=arr[j]; 
while(arr[i]<=ch && i<j)++i; 
arr[j]=arr[i]; 
} 
arr[i]=ch; 
if(i-1>startPos) quickSort(arr,startPos,i-1); 
if(endPos>i+1) quickSort(arr,i+1,endPos); 
} 

void main() 
{ 
char ch[]="qwertyuiopasdfghjklzxcvbnm"; 
quickSort(ch,0,25); 
printf("\n%s\n",ch); 
}什么叫快速排序 qsort 
#include<string.h> 
#include<stdlib.h> 
#include<stdio.h> 

struct student{ 
 int xuehao; 
 char name[20]; 
 int chengji; 
}; 

typedef struct student stu; 

sortbyxuehao(const void *,const void *); 
sortbyname(const void *,const void *); 
sortbychengji(const void *,const void *); 

void main() 
{ 
 int i; 
 stu a[3]; 
 int choice; 
 int (*p)(const void * ,const void *); 
  
 printf("please input record:\n"); 
 printf("xuehao name chengji:\n"); 
 for(i=0;i<3;i++) 
 { 
 scanf("%d",&a[i].xuehao); 
scanf("%s",a[i].name); 
scanf("%d",&a[i].chengji);  
 } 
 printf("choice_1: sorted xuehao:\n"); 
 printf("choice_2: sorted name\n"); 
 printf("choice_3: sorted chengji\n"); 

 scanf("%d",&choice); 
 while(choice!=0) 
 { 
 if(choice==1) 
 p=sortbyxuehao; 
 if(choice==2) 
 p=sortbyname; 
 if(choice==3) 
 p=sortbychengji; 

 qsort(a,3,sizeof(stu),p); 

 if(choice==1) 
 for(i=0;i<3;i++) 
 printf("\n%d\t%s\t%d",a[i].xuehao,a[i].name,a[i].chengji); 
 if(choice==2) 
 for(i=0;i<3;i++) 
 printf("\n%s\t%d\t%d",a[i].name,a[i].xuehao,a[i].chengji); 
 if(choice==3) 
 for(i=0;i<3;i++) 
 printf("\n%d\t%s\t%d",a[i].chengji,a[i].name,a[i].xuehao); 
 printf("\n"); 
 scanf("%d",&choice); 
 } 
  
} 

sortbyxuehao(const void *p,const void *q) 
{ 
 stu *x,*y; 
 x=(stu*)p; 
 y=(stu*)q; 

 return (-((*x).xuehao-(*y).xuehao)); 
} 

sortbyname(const void *p,const void *q) 
{ 
 stu *x,*y; 
 x=(stu*)p; 
 y=(stu*)q; 

 return strcmp((*x).name,(*y).name); 

} 

sortbychengji(const void *p,const void *q) 
{ 
 stu *x,*y; 
 x=(stu*)p; 
 y=(stu*)q; 

 return ((*x).chengji-(*y).chengji); 


}

进入C语言程序设计视频教程专区

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