云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > C语言常用算法程序汇总

C语言常用算法程序汇总

  • 62 次阅读
  • 3 次下载
  • 2025/12/6 22:52:19

} main()

{ int a[10]={12,45,7,8,96,4,10,48,2,46},i,min; for(i=0;i<10;i++) printf(“=”,a[i]);

printf(“\\n”); min=minvalue(a,10); printf(“the result is:%d”, min); }

9

五、排序问题

1.选择法排序(升序) 基本思想:

1)对有n个数的序列(存放在数组a(n)中),从中选出最小的数,与第1个数交换位置;

2)除第1 个数外,其余n-1个数中选最小的数,与第2个数交换位置;

3)依次类推,选择了n-1次后,这个数列已按升序排列。

程序代码如下:

自定义函数形式 void main()

void sort(int a[], int n) { int i,j,imin,s,a[10];

{ int i,j,imin,s; printf(\

for(i=0;i

+) scanf(\

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

for(j=i+1;j

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

if(a[imin]>aif(a[imin]>a[j]) imin=j;

[j]) imin=j; if(i!=imin)

if(i!=imin) {s=a[i]; a[i]=a[imin]; a[imin]=s; }

{s=a[i]; printf(\

a[i]=a[imin]; }

a[imin]=s; } 10

}

2.冒泡法排序(升序)

基本思想:(将相邻两个数比较,小的调到前头) 1)有n个数(存放在数组a(n)中),第一趟将每相邻两个数比较,小的调到前头,经n-1次两两相邻比较后,最大的数已“沉底”,放在最后一个位置,小数上升“浮起”;

2)第二趟对余下的n-1个数(最大的数已“沉底”)按上法比较,经n-2次两两相邻比较后得次大的数;

3)依次类推,n个数共进行n-1趟比较,在第j趟中要进行n-j次两两比较。

程序段如下 void main() { int a[10]; int i,j,t;

printf(\for(i=0;i<10;i++) scanf(\printf(\for(j=0;j<=8;j++) for(i=0;i<9-j;i++) if(a[i]>a[i+1])

{t=a[i];a[i]=a[i+1];a[i+1]=t;} printf(\

11

自定义函数形式: void sort(int a[], int n) { int i,j,t; for(j=0;j<=8;j++) for(i=0;i<9-j;i++) if(a[i]>a[i+1]) {t=a[i];a[i]=a[i+1];a[i+1]=t;} }

for(i=0;i<10;i++) printf(\,\}

3.合并法排序(将两个有序数组A、B合并成另一个有序的数组C,升序)

基本思想:

1)先在A、B数组中各取第一个元素进行比较,将小的元素放入C数组;

2)取小的元素所在数组的下一个元素与另一数组中上次比较后较大的元素比较,重复上述比较过程,直到某个数组被先排完;

3)将另一个数组剩余元素抄入C数组,合并排序完成。 程序段如下: void main()

{ int a[10],b[10],c[20],i,ia,ib,ic; printf(\for(i=0;i<10;i++) scanf(\for(i=0;i<10;i++) scanf(\printf(\

12

搜索更多关于: C语言常用算法程序汇总 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

} main() { int a[10]={12,45,7,8,96,4,10,48,2,46},i,min; for(i=0;i<10;i++) printf(“=”,a[i]); printf(“\\n”); min=minvalue(a,10); printf(“the result is:%d”, min); } 9 五、排序问题 1.选择法排序(升序) 基本思想: 1)对有n个数的序列(存放在数组a(n)中),从中选出最小的数,与第1个数交换位置; 2)除第1 个数外,其余n-1个数中选最小的数,与第2个数交换位置; 3)依次类推,选择了n-1次后,这个数列已按升序排列。 程序代

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com