vlambda博客
学习文章列表

排序算法精讲:选择排序和冒泡排序

点击上方“蓝字”关注我们吧!

哈喽,大家好,这次给大家分享一下基本的排序算法,分别是选择排序和冒泡排序,两个基本的排序算法算是算法学习和编程学习的基本共,要做到拿过来就写的程度(虽然小编也不太熟),为了这篇推文,小编特意写了两遍代码,然后才斗胆拿过来。

https://www.bilibili.com/video/BV1Cz4y1X7rN/

食用方法建议如下:

  1. 先看教学视频,将算法的逻辑和思想理解透彻;

  2. 闭上眼睛,回忆一下,两个算法的逻辑是怎样的;

  3. 打开IDE,将两个排序算法自己敲一遍代码;

  4. 回忆比较两个代码的区别。

排序算法精讲:选择排序和冒泡排序

c++代码如下所示:

ps.用什么代码不重要,重要的是逻辑和思想!!!

#include<iostream>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] << "\t";
//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] << "\t";}

其实,大家可以明显看出,冒泡要简洁一些的。

排序算法精讲:选择排序和冒泡排序


排序算法精讲:选择排序和冒泡排序

今天的文章就到这里,下期再见!

送封面:

排序算法精讲:选择排序和冒泡排序

排序算法精讲:选择排序和冒泡排序

排序算法精讲:选择排序和冒泡排序
哔哩哔哩:坚持和努力
新浪微博:@我家公子Q
欢迎关注!谢谢支持!
转载是一种动力 分享是一种美德