10个数比大小(排序)

您所在的位置:网站首页 java输入三个数字比大小的函数 10个数比大小(排序)

10个数比大小(排序)

2024-07-13 13:29| 来源: 网络整理| 查看: 265

10个数比大小(排序)——冒泡和选择

一. 冒泡法(起泡法)

冒泡排序的基本概念是(以升序排序为例):

依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。

2.代码

#include int main() { void comp(int a[]);//声明函数 int a[10]; printf("please input 10 numbers:");//输入 for (int i = 0; i < 10; i++) { scanf_s("%d", &a[i]); } comp(a);//调用函数 printf("The right number:");//输出 for (int i = 0; i < 10; i++) { printf("%3d", a[i]); } return 0; } void comp(int a[])//定义函数 { int i, j, k; 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; } } } }

3.运行结果 在这里插入图片描述 二.选择法

1.选择排序(从小到大)的基本思想是, 首先,选出最小的数,放在第一个位置; 然后,选出第二小的数,放在第二个位置; 以此类推,直到所有的数从小到大排序。

——————————————————————

下面,以对 3 2 4 1 进行选择排序说明排序过程,使用comp(定义的函数) 记录当前最小的数所在的位置。

第1轮 排序过程 (寻找第1小的数所在的位置) 3 2 4 1(最初, comp=1) 3 2 4 1(3 > 2, 所以comp=2) 3 2 4 1(2 < 4, 所以 comp=2) 3 2 4 1(2 > 1, 所以 comp=1, 这时候确定了第1小的数在位置4) 1 2 4 3 (第1轮结果,将3和1交换,也就是位置1和位置4交换)

第2轮 排序过程 (寻找第2小的数所在的位置) 1 2 4 3(第1轮结果, comp=2,只需要从位置2开始寻找) 1 2 4 3(4 > 2, 所以comp=2) 1 2 4 3(3 > 2, 所以 comp=2) 1 2 4 3(第2轮结果,因为comp位置刚好在第2个位置,无需交换)

第3轮 排序过程 (寻找第3小的数所在的位置) 1 2 4 3(第2轮结果, comp=3,只需要从位置2开始寻找) 1 2 4 3(4 > 3, 所以comp=3) 1 2 3 4(第3轮结果,将3和4交换,也就是位置4和位置3交换)

至此,排序完毕。(文字部分有转载 有所修改)

2.代码

#include int main() { void comp(int a[]);//声明函数 int a[10]; printf("please input 10 numbers:");//输入 for (int i = 0; i < 10; i++) { scanf_s("%d", &a[i]); } comp(a);//调用 printf("The right number:");//输出 for (int i = 0; i < 10; i++) { printf("%3d", a[i]); } return 0; } void comp(int a[])//定义 { int i, j, k, t; for (i = 0; i < 9; i++) { k = i; for (j = i + 1; j < 10; j++) { if (a[j] < a[k]) { k=j ; } }t = a[k]; a[k] = a[i]; a[i] = t; } }

3.运行结果 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3