排序算法精讲:选择排序和冒泡排序
Posted 运筹帷幄Q
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排序算法精讲:选择排序和冒泡排序相关的知识,希望对你有一定的参考价值。
哈喽,大家好,这次给大家分享一下基本的排序算法,分别是选择排序和冒泡排序,两个基本的排序算法算是算法学习和编程学习的基本共,要做到拿过来就写的程度(虽然小编也不太熟),为了这篇推文,小编特意写了两遍代码,然后才斗胆拿过来。
https://www.bilibili.com/video/BV1Cz4y1X7rN/
食用方法建议如下:
先看教学视频,将算法的逻辑和思想理解透彻;
闭上眼睛,回忆一下,两个算法的逻辑是怎样的;
打开IDE,将两个排序算法自己敲一遍代码;
回忆比较两个代码的区别。
c++代码如下所示:
ps.用什么代码不重要,重要的是逻辑和思想!!!
using namespace std;
int main()
{
//1.选择排序(从小到大)自行思考从大到小
//step1找到当前序列的最小值
//step2把这个最小值和当前序列最左边的值进行交换
int a[] = { 1, 3, 77, 34, 11, 12, 6, 8 };//待排序的数组
int size = 8;//数组大小
int min_index;//当前序列最小值的索引号
int temp1;//用于交换操作的临时变量
for (int i = 0; i < size - 1; i++)
{
//找到当前序列的最小值
min_index = i;
for (int j = i + 1; j < size; j++)
{
if (a[j] < a[min_index])
min_index = j;
}
// //将找到的最小值与当前序列最左边的值进行交换
temp1 = a[i];
a[i] = a[min_index];
a[min_index] = temp1;
}
////输出结果
for (int i = 0; i < size; i++)
cout << a[i] << " ";
//2.冒泡排序(从小到大)
//注意:这里要运行这一段代码的话,需要将上边的选择排序进行注释,
//或者写在不同的函数中,分别调用。
int a[] = { 1, 3, 77, 34, 11, 12, 6, 8 };//定义待排序的数组
int size = 8;//数组大小
int temp2;//用于交换操作的临时变量
for (int i = 0; i < size - 1; i++)
{
for (int j = i + 1; j < size; j++)
{
if (a[j] < a[i])//比较
{//交换
temp2 = a[i];
a[i] = a[j];
a[j] = temp2;
}
}
}
//输出
for (int i = 0; i < size; i++)
cout << a[i] << " ";
}
其实,大家可以明显看出,冒泡要简洁一些的。
今天的文章就到这里,下期再见!
送封面:
以上是关于排序算法精讲:选择排序和冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章
算法漫游指北(第七篇):冒泡排序冒泡排序算法描述动图演示代码实现过程分析时间复杂度和选择排序算法描述动图演示代码实现过程分析时间复杂度
算法漫游指北(第七篇):冒泡排序冒泡排序算法描述动图演示代码实现过程分析时间复杂度和选择排序算法描述动图演示代码实现过程分析时间复杂度