goback add

C语言的经典排序法及代码大全

4096 点击·0 回帖
灯火互联
楼主
//插入排序

#include<stdio.h>

void main()

{

int a[10];

int i,j,k;

printf("请输入10个数字!空格隔开n");

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

scanf("%d",&a);

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

{

k=a;

j=i-1;

while((j>=0)&&(a[j]>k))

{

a[j+1]=a[j];

j--;

}

a[j+1]=k;

}

printf("你输入的数字按照插入排序法由小到大排序后为n");

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

printf("%d",a);

printf("n");

}

//快速排序

#include<stdio.h>

void main()

{

int a[10];

int i;

int p(int a[],int low,int high);

void q(int a[],int low,int high);

printf("请输入10个数字,用空格隔开!!n");

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

scanf("%d",&a);

printf("快速排序法由小到大排序后:n");

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

printf("%d",a);

int p(int a[],int low,int high);

{

int key=a[low],p;

while(low<high)

{

while(low<high && a[high]>=key)

--high;

p=a[low];a[low]=a[high];a[high]=p;

while(low<high && a[low]<=key)

++low;

p=a[high];a[high]=a[low];a[low]=p;

}

a[low]=key;

return low;

}

void q(int a[],int low,int high);

{

int j;

if(low<high)

{

j=p(a,low,high);

q(a,low,j-1);

q(a,j+1,high);

}

}

}

//冒泡排序

#include<stdio.h>

void main()

{

int a[10];

int i,j,k;

printf("请输入10个数,用空格隔开!!n");

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

scanf("%d",&a);

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

for(j=0;j<9-i;j++)

if(a[j]>a[j+1])

{

k=a[j];

a[j]=a[j+1];

a[j+1]=k;

}

printf("冒泡排序法由小到大排序后:n");

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

printf("%d",a);

printf("n");

}

//希尔排序

#include<stdio.h>

void main()

{

int a[10];

int i,j,k=9,t;

printf("请输入10个数字:之间用空格隔开!!!n");

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

scanf("%d",&a);

while(k>0)

{

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

{

j=i-k;

while(j>=0)

if(a[j]>a[j+k])

{t=a[j];a[j]=a[j+k];a[j+k]=t;}

else break;

}

k/=2;

}

printf("你输入的数字希尔排序由小到大排序为:n");

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

printf("%4d",a);

printf("n");

}

//选择排序

#include<stdio.h>

void main()

{

int a[10];

int i,j,k,m;

printf("请输入10个数字,数字间用空格隔开!!n");

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

scanf("%d",&a);

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

{

k=i;

for(j=i+1;j<10;j++)

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

k=j;

if(k!=i)

{

m=a;

a=a[k];

a[k]=m;

}

}

printf("由选择法由小到大排序后:n");

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

printf("%d",a);

printf("n");

}

喜欢0 评分0