目录
选择排序
冒泡排序
先做好排序,现在就跟着我一起学习排序吧~
选择排序
选择排序作为最好想到的排序算法,也为我们打开了排序的大门,首先来看看选择排序的原理
从一组数据头或尾开始,和每一个数据比较,按照大小顺序依次放置 没错,就是这么简单
下面我们来看看实现选择排序的代码
int number[4] = { 22,33,44,55 };
for (int a = 1; a <= 4; a++)//第一重循环,用来确定第几个数
{
for (int b = a; b <= 4; b++)//二重循环,用来和后面的数字比较
{
if (number[b] > number[a])//判断大小
{
int t = number[a];
number[a] = number[b];
number[b] = t;//交换位置
}
}
}
for (int m = 1; m <= 4; m++)//遍历数组
{
printf("%d ", number[m]);
}
这里给大家藏了一个小bug,大家可以找找看哦
大家能看出时间复杂度是多少么?
选择排序并不具备稳定性,在相同大小的数据时并不能保留数据的顺序,下一次,我们就来实现具有稳定性的冒泡排序。
懊恼没有半分意义,珍惜现在的每分每秒
博客持续更新中,啊追也在和大家一起学习
冒泡排序
回到上次的bug,因为数组定义时,第一次number[4],4的意思为数组长度,下面用到的时候是从number[0]开始到number[3]。
现在呢,我们开始冒泡排序的讲解。
首先是冒泡排序是怎么进行的(比如从小到大排序)
我们先取数组中第一个数开始依次与后面的数进行比较,如果比后面的数大,则更换位置。
如
2 1 3 9 4 6 3
第一次冒泡排序后变成
1 2 3 4 6 3 9
第二次
1 2 3 4 3 6 9
第三次
1 2 3 3 4 6 9
核心为比较两个数,取大的数,并依次往后比较并交换位置。相比选择排序,用时较短,且不会改变相同大小数字的顺序。
C语言代码为
//正在施工中
懊恼没有半分意义,珍惜现在的每分每秒
博客持续更新中,啊追也在和大家一起学习



