本系列博客習(xí)題來自《算法(第四版)》,算是本人的讀書筆記,如果有人在讀這本書的,歡迎大家多多交流。為了方便討論,本人新建了一個(gè)微信群(算法交流),想要加入的,請?zhí)砑游业奈⑿盘枺簔hujinhui207407 謝謝。另外,本人的個(gè)人博客 http://www.kyson.cn 也在不停的更新中,歡迎一起討論

算法(第4版)
知識點(diǎn)
- 冒泡排序
題目
1.1.26 將三個(gè)數(shù)字排序。假設(shè) a、b、c 和 t 都是同一種原始數(shù)字類型的變量。證明以下代碼能夠?qū)?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; }
分析
這是冒泡排序的一種思路:通過不停交換數(shù)字,將小的數(shù)冒泡到最上面。
答案
if (a > b) { t = a; a = b; b = t; } // 保證a為a、b兩數(shù)的較小者
if (a > c) { t = a; a = c; c = t; } // 保證a為a、b、c三數(shù)中的最小者
if (b > c) { t = b; b = c; c = t; } // 保證b為比a大的b、c兩數(shù)的較小者,從而必有c為三數(shù)中的最大者
廣告
我的首款個(gè)人開發(fā)的APP壁紙寶貝上線了,歡迎大家下載。