算法练习(5):排序预习(1.1.26)

知识点

  • 排序

题目

1.1.26 将三个数字排序。假设 a、b、c 和 t 都是同一种原始数字类型的变量。证明以下代码能够将 a、 b、c 按照升序排列:
if (a > b) { t = a; a = b; b = t; }
if (a > c) { t = a; a = c; c = t; }
if (b > c) { t = b; b = c; c = t; }


1.1.26 Sorting three numbers. Suppose that the variables a, b, c, and t are all of the same numeric primitive type. Show that the following code puts a, b, and c in ascending order:
if (a > b) { t = a; a = b; b = t; }
if (a > c) { t = a; a = c; c = t; }
if (b > c) { t = b; b = c; c = t; }

分析

这是排序的一种思路:通过不停交换数字,实现排序。关于排序,会在第二章做重点讲解。

答案

if (a > b) { t = a; a = b; b = t; }     // 保证a为a、b两数的较小者
if (a > c) { t = a; a = c; c = t; }     // 保证a为a、b、c三数中的最小者
if (b > c) { t = b; b = c; c = t; }     // 保证b为比a大的b、c两数的较小者,从而必有c为三数中的最大者
© 著作权归作者所有
这个作品真棒,我要支持一下!
算法四的所有习题答案以及详细分析。之前有在简书上写过系列文章,发现要想把这本书习题全部做完并写文章分析真的很花时间...
0条评论
top Created with Sketch.