首页 > 编程知识 正文

c语言的几种排序方法,c语言排序的两种方法

时间:2023-05-05 06:51:43 阅读:284507 作者:4761

 

 

1.将输入的一串数字存入数组中,可先用字符串的形式输入,再通过转化成整型数存入数组中

int len=0,tmp=0;int a[MAXSIZE]={0};char string[100]={0};printf("请输入任意个数的整数,以回车结束n");gets(string);char *str=string;while(*str!=''){while(*str!=' '&&*str!='') //'1','0',' ','1','2',' '{a[len]=a[len]*10+*str-'0';str++;}len++;while(*str==' ') str++;}print(a,len);

2.几种排序方法。冒泡排序:循环进行比较,依次将最小的数冒出来。

void Bubble_sort(int a[],int len){int i,j;int flag=FALSE; //FALSE代表序列依旧为乱序for(i=1;i<len&&flag==FALSE;i++){flag=TRUE;for(j=0;j<len-i;j++){if(a[j]>a[j+1]){swap(a,j,j+1);flag=FALSE;//若出现交换,说明存在乱序}}}}

选择排序:先通过比较将最小的数找出来,在将剩余的数找出最小的,循环排序。

void Select_sort(int a[],int len){int i,j,min;for(i=1;i<len;i++){min=i-1;for(j=i;j<len;j++){if(a[min]>a[j])min=j;}if(min!=i-1)swap(a,min,i-1);}}

 插入排序:每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。

void Insert_sort(int a[],int len){int i,j;for(i=1;i<len;i++){new=a[i];for(j=i-1;j>=0;j--){if(a[j]>new)a[j+1]=a[j];else break;}a[j+1]=new;for(j=0;j<=i;j++){while(a[j]>a[i]){swap(a,j,i);}}}}

其中交换函数为:

void swap(int a[],int i,int j){int tmp;tmp=a[i];a[i]=a[j];a[j]=tmp;}

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。