排序算法之冒泡排序

本文详细介绍了冒泡排序的基本思想和过程,通过一个具体的例子展示了冒泡排序如何将未排序数组按升序排列。每趟排序将最大(或最小)元素逐渐移动到数组末尾,直至整个数组有序。冒泡排序适用于小规模数据的排序,其时间复杂度为O(n^2)。
摘要由CSDN通过智能技术生成

1. 冒泡排序

基本思想:每一趟排序均从未排序元素开始,将未排序元素与其相邻元素进行比较,若不符合排序要求则进行交换后继续比较下一个元素与其相邻元素的大小,若符合排序要求则继续比较下一个元素与其相邻元素的大小。第一趟排序结束后,最小或最大元素来到数组的最后一个元素处,第二趟排序结束后,最小或最大元素来到数组的倒数第二个元素处,...如此反复循环直到所有元素均进行排序处理。

举例说明:未排序数组array[7]={5,3,12,9,1,6,8},从前往后冒泡并以升序形式进行排序。

(1)第一趟排序:对未排序元素区间[0,6]进行排序,未排序区间的下边界为bound=6,定义一个索引cur指向未排序区间中的元素,cur初始指向未排序区间的开始处即cur=0。数组为array[7]={5,3,12,9,1,6,8}

开始第一趟的比较(比较条件为cur<bound=6):

①cur=0,array[cur]=5,5比3大故进行交换,数组变为array[7]={3,5,12,9,1,6,8};

②cur++即cur=1,array[cur]=5,5没12大故不进行交换,数组仍为array[7]={3,5,12,9,1,6,8};

③cur++即cur=2,array[cur]=12,12比9大故进行交换,数组变为array[7]={3,5,9,12,1,6,8};

④cur++即cur=3,array[cur]=12,12比1大故进行交换,数组变为array[7]={3,5,9,1,12,6,8};

⑤cur++即cur=4,array[cur]=12,12比6大故进行交换,数组变为array[7]={3,5,9,1,6,12,8};

⑥cur++即cur=5,array[cur]=12,12比8大故进行交换,数组变为array[7]={3,5,9,1,6,8,12};

⑦cur++即cur=6,此时cur!<bound,故第一趟比较结束,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值