时间:2021-05-20
冒泡排序
大学学习数据结构与算法最开始的时候,就讲了冒泡排序;可见这个排序算法是多么的经典。冒泡排序是一种非常简单的排序算法,它重复地走访过要排序的数列,每一次比较两个数,按照升序或降序的规则,对比较的两个数进行交换。比如现在我要对以下数据进行排序:
10 3 8 0 6 9 2
当使用冒泡排序进行升序排序时,排序的步骤是这样的:
3 10 8 0 6 9 2 // 10和3进行对比,10>3,交换位置
3 8 10 0 6 9 2 // 10再和8进行对比,10>8,交换位置
3 8 0 10 6 9 2 // 10再和0进行对比,10>0,交换位置
……
3 8 0 6 9 2 10 // 这个时候,10到达了最右边,是最大的数字,此时,我们在从头开始进行对比
3 8 0 6 9 2 10 // 3小于8,所以不用交换位置
3 0 8 6 9 2 10 // 8大于0,所以交换位置
……
0 2 3 6 8 9 10
很简单,就是让大数沉入下面,小数慢慢上浮起来。冒泡排序的时间复杂度也为O(n^2)。
代码实现
复制代码 代码如下:
#include <iostream>
using namespace std;
void BubbleSort(int arr[], int length)
{
int temp;
for (int i = 0; i < length; ++i)
{
for (int j = 0; j < length - i - 1; ++j)
{
if (arr[j] > arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main()
{
int arr[10] = {2, 4, 1, 0, 8, 4, 8, 9, 20, 7};
BubbleSort(arr, sizeof(arr) / sizeof(arr[0]));
for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); ++i)
{
cout<<arr[i]<<" ";
}
cout<<endl;
return 0;
}
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例为大家分享了C++实现双向冒泡排序算法的具体代码,供大家参考,具体内容如下一、概念(来源于百度百科)传统冒泡算法原理冒泡排序算法的运作如下:(从后往前)
本文实例讲述了C语言排序算法之冒泡排序实现方法。分享给大家供大家参考,具体如下:冒泡排序和改进的冒泡排序/*--------------------------
本文实例为大家分享了C++实现冒泡排序的具体代码,供大家参考,具体内容如下一、思路:冒泡排序算法原理:1.比较相邻的元素。如果第一个数比第二个数大,就交换他们两
作者:Sabine【导读】本文介绍了C#的四种排序算法:冒泡排序、选择排序、插入排序和希尔排序 冒泡排序usingSystem;namespaceBubbleS
本文分享的实例主要是Python编程二分法实现冒泡算法+快速排序,具体如下。冒泡算法:#-*-coding:UTF-8-*-#冒泡排序deffunc(lt):i