常见排序算法之交换排序和冒泡排序

交换排序

基本思想: 所谓交换,就是根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置,交换排序的特点是:将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动。

冒泡排序

void BubbleSort(int* a, int n)
{
? ? for (int j = 0; j < n; j++)
? ? {
? ? ? ? int exchange = 0;//设置一个初值为0的变量,看这一次排序数组是否有变化
? ? ? ? for (int i = 1; i < n - j; i++)
? ? ? ? {
? ? ? ? ? ? if (a[i - 1] > a[i])
? ? ? ? ? ? {
? ? ? ? ? ? ? ? Swap(&a[i - 1], &a[i]);
? ? ? ? ? ? ? ? exchange = 1;//如果发生了交换,则将exchange的值变为1
? ? ? ? ? ? }
? ? ? ? }

? ? ? ? if (exchange == 0)//exchange为0的话说明这一趟排序数组是有序的
? ? ? ? ? ? ? ? ? ? ? ? ? //所以跳出这一趟循环
? ? ? ? {
? ? ? ? ? ? break;
? ? ? ? }
? ? }
}

冒泡排序的特性总结:

  1. 冒泡排序是一种非常容易理解的排序
  2. 时间复杂度:O(N^2)
  3. 空间复杂度:O(1)
  4. 稳定性:稳定
  5. 常见排序算法之交换排序和冒泡排序

文章链接: /25984.html

文章标题:常见排序算法之交换排序和冒泡排序

文章版权:云服务器租用科技所发布的内容,部分为原创文章,转载请注明来源,网络转载文章如有侵权请联系我们!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
云数据中心

数据中心每秒处理能力多少?

2023-12-13 11:30:47

云数据中心

沈阳数据中心带宽多少?

2023-12-14 11:34:21

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧

云服务器租用科技 - 最新云主机促销服务器租用优惠

http://www.vxiaotou.com