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

//插入排序

#include

void main()

{

int a[10];

int i,j,k;

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

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

scanf("%d",&a[i]);

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

{

k=a[i];

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[i]);

printf("\n");

}

//快速排序

#include

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[i]);

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

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

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

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

{

int key=a[low],p;

while(low

{

while(low=key)

--high;

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

while(low

++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

{

j=p(a,low,high);

q(a,low,j-1);

q(a,j+1,high);

}

}

}

//冒泡排序

#include

void main()

{

int a[10];

int i,j,k;

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

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

scanf("%d",&a[i]);

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[i]);

printf("\n");

}

//希尔排序

#include

void main()

{

int a[10];

int i,j,k=9,t;

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

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

scanf("%d",&a[i]);

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[i]);

printf("\n");

}

//选择排序

#include

void main()

{

int a[10];

int i,j,k,m;

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

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

scanf("%d",&a[i]);

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[i];

a[i]=a[k];

a[k]=m;

}

}

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

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

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

printf("\n");

}

(0)

相关推荐

  • 选择排序法原理举例解释

    计算机写代码的时候经常要用到数组排序什么的,冒泡法啊选择排序啊很常用,其实选择排序法更常用的,因为不浪费资源,更简洁-- 选择排序法比冒泡法更加实用,把数组从大到小排列,举个例子解释一下,数组如图-- ...

  • excel工资表怎么使用排序法添加重复性排头?

    制作常规表格使用同一排头可以美化视觉效果,很多时候也需要将其分解,例如将工资表转换为工资条.这里教大家使用排序法快速完成这一要求. 1.首先我们打开一个工作样表作为例子.工作样表为标准的工资表. 2. ...

  • excel使用排序法添加重复性排头

    小编致力于为大家奉献最有效的,让大家能够解决掉问题,但是大家也都知道,每个人遇到的情况都是不一样的,大家在看小编的同时,除了跟随操作,也需要自己的思考,举一反三的解决问题,这样才会变得更加有内涵,成为 ...

  • 易语言怎么写开机启动的代码

    教大家怎么用易语言写开机自启的代码 操作方法 01 第一步,先添加两个按钮组件,一个把按钮标题设置为设置开机启动,另一个把按钮标题设置为取消开机启动. 02 第二步,双击第一个按钮,进入窗口程序集1写 ...

  • 斗地主经典玩法简介

    斗地主,一款老少皆宜的小游戏,工作学习之余娱乐休闲之上上选. 操作方法 01 首先,在手机的应用中心或者电脑的游戏中心中下载斗地主这一款小游戏.选择很多,玩家可以选择单机的或者联网的都可以,最近比较热 ...

  • 欢乐斗地主实战解析之经典玩法

    斗地主是深受大家喜爱的一种牌类游戏,想要成为一个斗地主高手不仅要靠运气,还需要精湛的牌技.欢乐斗地主中有好几种不同类型的斗地主玩法,不同的玩法有不同的技巧.所以今天小编通过实战给大家介绍一下该如何玩好 ...

  • Excel如何设置每隔一行插入n行(辅助列排序法)

    Excel中如何设置每隔一行插入n行空白行呢? 小编在此给你介绍辅助列排序法,该操作法的优点是操作简单上手快,缺点是不太适合数据较长的工作表. 操作方法 01 打开例表,假设本例表中需要在每一行设备后 ...

  • 安卓手机拨号键盘隐藏工程代码大全

    安卓手机拨号键盘隐藏工程代码大全 在拨号面板中输入就可执行,但不保证所有代码在你的手机上都可执行。 *#*#4636#*#* 显示手机信息、电池信息、电池记录、使用统计数据、WiFi 信息 *#*#7 ...

  • 主板代码大全

    AMI主板代码大全(BIOS-ID) 大家有不知型号的主板,就从这里面查吧,不要一一问了。如果查不到,再问,不过,可能问了也白问。 AMI的BIOS-ID,有下面几种形式: DINT-1123-041 ...