冒
泡
排
序
基
本
思
想
两两比较相邻记录的关键码,如果反序则交换,直到没有反序的记录为止
需
要
解
决
的
问
题
:
在一趟起泡排序中,若有多个记录位于最终位置, 应如何记载
如何确定起泡排序的范围,使得已经位于最终位 置的记录不参与下一趟排序?
如何判别起泡排序的结束?
第
一个
问
题
:
设变量exchange记载记录交换的位置,则一趟排序后, exchange记载的一定是这一趟排序中记录的最后一次交
换的位置,且从此位置以后的所有记录均已经有序。
第
二个
问
题
:
设bound位置的记录是无序区的最后一个记录,则每 趟起泡排序的范围是r[1] ~ r[bound]。 在一趟排序后,从
exchange位置之后的记录一定是有 序的,所以bound=exchange。
第
三个
问
题
:
在每一趟起泡排序之前,令exchange的初值为0,在 以后的排序过程中,只要有记录交换,exchange的 值就会大
于0。这样,在一趟比较完毕,就可以通过 exchange的值是否为0来判别是否有记录交换,从而 判别整个起泡排序
的结束。
代
码
:
评论0