排序三个整数

可以用if...else的判断分支去列举所有可能的结果,但n个数就需要n!个判断,从代码量上来说是不可接受的。(写法略)

那如果每次操作找出当前所有数中的最值(最大或最小),然后就可以不再管那个最值了,从而缩小下一次所要处理的数据量,直至处理完所有数据。

// exch means exchange the two values
if
(a > b) exch(a, b); if (a > c) exch(a, c); // now a is the smallest one if (b > c) exch(b, c); // sorted

如果需要排序的数值数量比较大,可以使用两层for循环的方式来处理,其实这就是选择排序的思路

摘录自<<算法竞赛入门经典>>

posted @ 2019-06-30 20:04  coding新手的学习笔记  阅读(222)  评论(0)    收藏  举报