排序算法精讲:选择排序和冒泡排序
哈喽,大家好,这次给大家分享一下基本的排序算法,分别是选择排序和冒泡排序,两个基本的排序算法算是算法学习和编程学习的基本共,要做到拿过来就写的程度(虽然小编也不太熟),为了这篇推文,小编特意写了两遍代码,然后才斗胆拿过来。
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] << "\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";
}
其实,大家可以明显看出,冒泡要简洁一些的。
今天的文章就到这里,下期再见!
送封面: