4.3.8  排列

4.3.8 排列

本小节主要介绍容器(序列)中元素的“排列元素”“重排元素”和“前向搬移”三种操作。“排列元素”会改变容器(序列)中的元素次序,排序方式为字典式“正规”排序。“重排元素”是指对容器中的所有元素进行随机排序,一般有两种形式:符合均匀分布随机的排序;按指定规则打乱容器(序列)中的元素次序。“前向搬移”是指按指定的一元判断式向前搬移元素,当一元判断式的值为true时,算法会向前移动符合条件的元素,其返回值是使一元判断式为“false”的第一个元素位置。

排列元素的原型为:

978-7-111-51399-5-Chapter04-87.jpg

重排元素的原型为:

978-7-111-51399-5-Chapter04-88.jpg

前向搬移元素的原型为:

978-7-111-51399-5-Chapter04-89.jpg

例4-23

978-7-111-51399-5-Chapter04-90.jpg

例4-23的执行效果如图4-23所示。

978-7-111-51399-5-Chapter04-91.jpg

图4-23 例4-23的执行效果

例4-24

978-7-111-51399-5-Chapter04-92.jpg

978-7-111-51399-5-Chapter04-93.jpg

例4-24的执行效果如图4-24所示。

978-7-111-51399-5-Chapter04-94.jpg

图4-24 例4-24的执行效果

例4-25(引自《C++标准程序库》)

978-7-111-51399-5-Chapter04-95.jpg

例4-25的执行效果如图4-25所示。

978-7-111-51399-5-Chapter04-96.jpg

图4-25 例4-25的执行效果

上述3个例题分别讲述了6种和排序有关的算法,其功能各不相同。但它们均是通过不同的方式来实现对容器(序列)中元素的排序。看似用途不大,但是各种妙处希望读者多理解,多体会。