官术网_书友最值得收藏!

2.1 布爾類型

2.1.1 概念

布爾(Boolean)類型用來表示邏輯里的真(TRUE)或假(FALSE)。

布爾類型最多的用途有兩個:

(1)設置FLAG,通常在循環外設置FLAG的初始值,在循環內滿足一定條件時變更FLAG的值,這樣查看FLAG的值,就可以知道循環邏輯中是否滿足一定條件的實例。例如冒泡排序就用到了設置FLAG值的方法。

(2)用作控制邏輯,例如比較版本號:

2.1.2 面試題:冒泡排序

題目描述:寫一下冒泡排序算法。

冒泡排序是經典的排序方式之一,算法復雜度為O(n2)。其算法的核心是,對一個n個元素數組,需要進行n-1輪的循環比較。每一輪的循環中,將相鄰的元素進行比較,如果左邊的元素值大于右邊的元素,則將兩者的位置交換;每一輪結束后,最大值的元素就會放置在最右的位置;這樣循環結束后,所有的元素都會按從小到大的順序排列完成。

例如對數組[6,5,4,1,2,3]用冒泡方法進行排序:

原始數組: [6,5,4,1,2,3]

第一次循環:[5,4,1,2,3,6]

第二次循環:[4,1,2,3,5,6]

第三次循環:[1,2,3,4,5,6]

第四次循環:[1,2,3,4,5,6]

第五次循環:[1,2,3,4,5,6]

大家注意到第四、五次循環時,并沒有發生位置交換。這時可以設置一個FLAG,如果一個循環中沒有位置交換,則說明排序已完成,退出循環即可。這樣一個FLAG變量的設置,減少了一次循環的時間。

在其他的場合,也可以設置合適的FLAG,當滿足條件時更改FLAG的值,然后檢測FLAG的值決定是否退出循環,可以減少循環的次數,提高程序的效率。

程序代碼如下:(源碼文件:ch02/bubble_sort.php)

2.1.3 類型轉換

在控制邏輯中,所有表達式的值都會先轉換為boolean值再進行比較,表2-1列出了常見的類型轉換。

表2-1 其他類型轉換為布爾類型

2.1.4 面試題:布爾數據比較

題目描述:不同類型數據與Boolean的比較,判斷其輸出是什么?

程序代碼如下:(源碼文件:ch02/boolean.php)

點評:考察點是各種數據類型到boolean的轉換,參考表2-1,讀者可以實際運行一下程序,思考為什么會是這樣的結果。

主站蜘蛛池模板: 聂拉木县| 英山县| 苍梧县| 晋中市| 张家界市| 凤台县| 和田县| 凌云县| 五常市| 台州市| 凤冈县| 天水市| 霸州市| 蒲江县| 辉南县| 方山县| 广南县| 招远市| 武乡县| 大姚县| 随州市| 祁连县| 广饶县| 集安市| 榆中县| 含山县| 聊城市| 亚东县| 大余县| 新宾| 渑池县| 紫阳县| 逊克县| 吴堡县| 吴桥县| 瑞昌市| 千阳县| 黄山市| 栖霞市| 北海市| 靖远县|