失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 主函数中冒泡法 VS 自定义函数选择法

主函数中冒泡法 VS 自定义函数选择法

时间:2021-01-11 05:56:49

相关推荐

主函数中冒泡法 VS 自定义函数选择法

相同点

都用于一维数组的排序

不同点(均为从小到大排序)

主函数中的冒泡法(即只用主函数搞定排序)

/***********************************************************题目:有10个地区的面积,对它们按照从小到大的顺序排序方法:一维数组冒泡法***********************************************************/#include "stdio.h"int main(void){int a[10];int i,j,t;printf("请输入10个整数\n");for(i=0; i<10; i++){scanf("%d", &a[i]);}printf("\n");for(j=0; j<9; j++)//j是排序的趟数{//j控制着前9-j个数组元素与第9-j+1个元素相比较for(i=0; i<9-j; i++)//i最大取到8即可,因为i+1最大可取到9{if(a[i] > a[i+1]){t = a[i];a[i] = a[i+1];a[i+1] = t;}}}printf("排序之后为:\n");for(i=0; i<10; i++){printf("%d", a[i]);}printf("\n");return 0;}

特点
边比较边调整元素位置在每一趟比较中,选出最大的元素,并向后挪 自定义函数选择法(在自定义函数中实现排序功能,有传参的动作)

/********************************************************题目:对10个整数进行从小到大的排序方法:选择法(利用自定义函数实现排序)*********************************************************/#include "stdio.h"int main(void){void sort(int array[], int n);int a[10], i;printf("请输入10个整数");for(i=0; i<10; i++){scanf("%d", &a[i]);}sort(a, 10);printf("排序后的数组:\n");for(i=0; i<10; i++){printf("%d", a[i]);}printf("\n");return 0;}//对目标数组进行从小到大的排序void sort(int array[], int n)//void sort(数组名, 数组长度){int i, j, k, t;for(i=0; i<n-1; i++)//i控制被比较的元素,同时也控制比较的趟数{k = i;for(j=i+1; j<n; j++)//j控制许多需要比较的、位置处于后面的元素{if(array[j] < array[k])//后面小的 < 前面大的{k = j;//k用于储存最小元素对应的下标}}t = array[k];array[k] = array[i];array[i] = t;}}

特点
先比较,再调整元素位置在每一趟比较中,选出最小的元素对应的下标,并记忆

如果觉得《主函数中冒泡法 VS 自定义函数选择法》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。