首页 理论教育 单片机原理与应用实例-冒泡排序示意图及题意分析

单片机原理与应用实例-冒泡排序示意图及题意分析

时间:2023-10-22 理论教育 版权反馈
【摘要】:en-1、en,单元中的数以、……经过n-1次两两比较后,e1位置上必然得到数组中的最大值,犹如一个气泡从水中冒到了水面。上述过程称为第一轮冒泡排序,第一轮冒泡排序后,为数组最大值。如此经过n-1轮冒泡排序,即(n-1)2次两两比较,便可按题意完成n个数的从小到大排列。图4-12 冒泡排序过程示意图(n=7)冒泡排序过程如图4-12所示,图中较形象地说明这一冒泡排序法的工作过程。

单片机原理与应用实例-冒泡排序示意图及题意分析

n个无符号数在数据块中存放单元序号为:e1e2……en-1en,单元中的数以(e1)、(e2)……(en-1)、(en)表示,使这些数按从小到大的顺序排列的方法很多,本例采用冒泡排序法进行程序设计,其工作原理如下:

1)冒泡排序法又称两两比较法。它先使(en)和(en-1)比较,若(en)>(en-1)则两个存储单元中的内容交换,反之就不交换。然后使(en-1)和(en-2)比较,按同样原则决定是否交换,一直比较下去,最后完成(e2)和(e1)比较及交换。经过n-1次两两比较后,e1位置上必然得到数组中的最大值,犹如一个气泡从水中冒到了水面。上述过程称为第一轮冒泡排序,第一轮冒泡排序(n-1次两两比较)后,(e1)为数组最大值。

2)第二轮冒泡排序和第一轮冒泡排序时完全相同,比较次数也是n-1次,第二轮冒泡排序后可以在e2位置上得到第2大值。如此经过n-1轮冒泡排序,即(n-1)2次两两比较,便可按题意完成n个数的从小到大排列。

978-7-111-46831-8-Chapter04-22.jpg(www.xing528.com)

图4-12 冒泡排序过程示意图n=7)

冒泡排序过程如图4-12所示,图中较形象地说明这一冒泡排序法的工作过程。由图可见,当n=7时,经过n-1=6次冒泡比较,就可以使最大的数70到达数据块中最小序号e1的单元。重复6轮(n-1)这样的冒泡比较过程就可以完成使7个数从小到大进行顺序排列的任务。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈