冒泡法与选择法!

article/2025/9/27 12:49:02

数组排序的两种常见方法:
1.冒泡法 2.选择法
冒泡法:相邻两数比较交换,小升大沉,比较n-1次(最后那个数的位置自动确定),每次比较中进行n-j次两两比较,每次比完最大的数到最后面。
代码如下:
void BubbleSort(int *arr,int len)
{
int tmp;
for(int i=0;i<len-1;i++) //n个数 一共比较n-1次
{
for(int j=0;j<len-1-i;j++) //j只用比len-1-i,i是表示后面的以确定的最大数的个数
{
if(arr[j] > arr[j+1]) //把每一轮中最大的数 沉到最后面
{
tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
}

int main()
{
int arr[]={5,6,4,2,3,89,1,6};
BubbleSort(arr,sizeof(arr)/sizeof(arr[0]));
for(int i=0;i<sizeof(arr)/sizeof(arr[0]);i++)
{
printf("% d",arr[i]);
}
return 0;
}
在这里插入图片描述
选择法:每次将第一个最为最小值,再与后面的数进行比较,将真正的最小值找到放到第一个位置
代码如下:
void show(int *arr,int len)
{
int min;
int tmp;
for(int i=0;i<len;i++)
{
min=i;
for(int j=i+1;j<len;j++) //前i个数是已经排列好了的
{
if(arr[j]<arr[min])
min=j;
}
if(min!=i) //交换j和i的位置
{
tmp=arr[i]; //这里一定不能是arr[i]和arr[j]进行交换,因为j会一直往后走,而 min一定是那个最小的j
arr[i]=arr[min];
arr[min]=tmp;
}
}
}

int main()
{
int arr[]={1,6,4,5,9,2};
show(arr,sizeof(arr)/sizeof(arr[0]));
for(int i=0;i<sizeof(arr)/sizeof(arr[0]);i++)
{
printf("% d",arr[i]);
}
return 0;
}
在这里插入图片描述


http://chatgpt.dhexx.cn/article/D091cbec.shtml

相关文章

C语言:冒泡法排序

冒泡法排序指的是在排序时&#xff0c;每次比较数组中相邻的两个数组元素的值&#xff0c;将较小的数&#xff08;从小到大排列&#xff09;排在较大的数前面。 每一轮比较&#xff0c;数组中最大或最小的数就会从最右面冒出来。 举例&#xff1a; 99 32 -21 100 第一轮&#…

冒泡法

冒泡法 冒泡法的思路是:每次将相邻的两个数作比较,把较小的调到前头。 若有5个数a[0]~a[4]依次为 9-3-6-1-2. 第一趟:   a[0]和a[1]比较,9>3,互换位置,序列变成3-9-6-1-2;   a[1]和a[2]比较,9>6,互换位置,序列变成3-6-9-1-2;   a[2]和a[3]比较,9>1,…

冒泡法(基本原理和方法)(c语言篇)

学习冒泡排序法 一.引入数组概念 二.掌握循环嵌套 三.思考排序方法 四.编译程序 五.调试运用&#xff08;检错优化&#xff09; 一. *数组是一组具有相同数据类型的数据的有序集合。 *数组中的每一个元素都属于同一个数据类型。 *一个数组名和下标来唯一确定数组中的元素…

C语言排序之冒泡法(起泡法)

C语言排序之冒泡法&#xff08;起泡法&#xff09;C语言排序之冒泡法&#xff08;起泡法&#xff09; 冒泡的本质还是两两比较&#xff0c;第一次把最大或最小的选出来&#xff0c;第二次把老二选出来&#xff0c;这样的话就会少比一次&#xff0c;就这样循环下去就行啦&#x…

排序算法--冒泡法

冒泡法 原理是遍历文件&#xff0c;如果相邻的两个元素大小不符合预期&#xff0c;则进行交换&#xff0c;重复直到有序为止。 第一遍时&#xff0c;从左到右比较相邻两个元素&#xff0c;当两个元素中右边的元素较小时&#xff0c;将其与左边的元素进行交换。直到最终将最大…

排序算法之冒泡法(起泡法)

起泡法的理解及基本思路&#xff1a; 通俗理解就是将小的数浮上来&#xff0c;大的则沉底&#xff08;小浮大沉&#xff09;。 基本思路 每次将相邻两个数比较&#xff0c;将小的调到前面。如下图所示&#xff1a; 显而易知&#xff0c;共有六个数&#xff0c;在第一趟排序时…

冒泡排序法

冒泡排序法 冒泡排序法原理示意图 public static void ArraySortTest() {int[] ages {21,27,31,19,50,32,16,25};System.out.println(Arrays.toString(ages));//控制比较轮数for(int i1;i<ages.length;i) {//每轮比较多少for(int j0;j<ages.length-i;j) {if(ages[j]&…

冒泡法的讲解及使用

冒泡法是一种比较数组中数据大小的方法&#xff0c;基本思路是&#xff1a;每次将相邻两个数相比较&#xff0c;将小的调到前面。 例如&#xff1a;若有6个数:9,8,5,4,2,0 &#xff1b;先由第一个数与第二个数比较&#xff0c;小的数在前&#xff1b;再由第二个数与第三个数比…

冒泡法详解

目录 什么是冒泡法冒泡法思路代码的实现 什么是冒泡法 冒泡排序&#xff08;Bubble Sort&#xff09;&#xff0c;是一种计算机科学领域的较简单的排序算法。 这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端&#xff08;升序或降序排列&#xff09;&…

冒泡排序法(超详细)

冒泡排序法 文章目录 冒泡法的基本思路思路总结 程序实现 下面我们一起来看看排序中的冒泡排序法。 &#x1f4a1;[例]有5个数字&#xff0c;要求对它们按由小到大的顺序排列。 这种问题称为数的排序(sort)。排序的规律有两种:一种是“升序”&#xff0c;从小到大;另一种是“降…

【C语言】冒泡法排序

哈喽&#xff01; 大家好&#xff0c;我们今天结束C语言期末考试啦 不知道各位同学考完了没呢&#xff1f; 由于在考试前依然有很多同学不清楚冒泡法怎么用 这期我专门整理了一下冒泡法的用法&#xff0c; 供大家参考哦&#xff01; 我们先来看一下源代码&#xff1a; /…

2020年程序员日,是个特别的日子

大家调侃2020年是程序员的本命年&#xff0c;因为今年刚好碰上了2020-1024996的公式&#xff0c;发图纪念下。

「1024 程序员节」各大公司和程序员们都是怎么过的?你都做了哪些计划或安排?

鲁迅曾经说过&#xff1a;“这个世界上本没有节日&#xff0c;网友BB的多了&#xff0c;什么节日都可以有。” 上面就当笔者开个玩笑&#xff0c;但互联网时代&#xff0c;人造节日真的是越来越多了&#xff01; 当然&#xff0c;也被赋予了特殊的含义。 比如&#xff1a; 5…

1024 | 第一波程序员日福利

程序员日马上就要到了&#xff0c;熟悉老表(就是X先生本人哈)的读者肯定知道&#xff0c;福利特别多&#xff0c;程序员日这么关键的日子&#xff0c;怎么能不给大家送点福利呢&#xff1f;不&#xff0c;一点点&#xff0c;太少了&#xff0c;来波大的&#xff0c; 针对1024程…

程序员的假期

暑假这么长&#xff0c;想想是不是就觉得非常爽了呢&#xff1f; 虽然&#xff0c;假期之前 内心估计都这样祈祷过⇊ 但身为一名&#xff08;合格的&#xff09;程序员 假期真的离得开代码吗&#xff1f; 时不时得看一下公司的企业群&#xff0c; 时不时处理一下紧急的事情…

2022,了不起的程序员日历来啦!

日历一天天地翻过&#xff0c;转眼间 2021 年还剩下一个半月了。这一年&#xff0c;小伙伴们有怎样的收获&#xff1f;年初的读书计划、健身计划都落实的怎么样啦&#xff01;曾经信心满满立下的众多 Flag&#xff0c;如今都实现了没&#xff1f; 来说一个好消息&#xff0c;20…

1024 程序员日

1024程序猿节日快乐

1024程序员节,今天你加班了吗,关于程序员的趣事都有哪些?

10 月 24 日 本是个寻常的日子 但是在新时代的中国 却赋予了它新的意义 正是广大的程序员们 用一行行代码、一个个函数 支撑起中国互联网的快速发展 所以今天 我们就来看看 有哪些适合程序员的高逼格礼物 以下内容来源 知乎问答&#xff1a; 有哪些适合放在程序员办公桌上的…

每日言论:『程序员的工作方式』

公众号关注 「奇妙的 Linux 世界」 设为「星标」&#xff0c;每天带你玩转 Linux &#xff01; 最近&#xff0c;我们建立了一个技术交流微信群。目前群里已加入了不少行业内的大神&#xff0c;有兴趣的同学可以加入和我们一起交流技术&#xff0c;在 「奇妙的 Linux 世界」 公…

程序员的一天是怎样过的?

作者&#xff1a;互联网早班车 程序员的一天是怎样过的&#xff1f; 01 阿里系程序员一天的工作 1、早上8点到公司&#xff0c;看15分钟微博&#xff0c;做一天的计划。 2、10点开个晨会&#xff0c;然后工作到12点。 3、中午出去吃个饭聊天&#xff0c;1点半回来。 4、…