iT邦幫忙

2023 iThome 鐵人賽

DAY 16
0
Kotlin

Kotlin快速轉職系列-勇者篇系列 第 16

Day09#1 常用的功能通常都已經有人建立好了

  • 分享至 

  • xImage
  •  

既然說可以玩,勇者就大膽的嘗試了重複數字、沒有數字、只有一個數字的組合,結果都很正常。
這時他突然想起,蕭凱琪曾經說過,常用的功能通常都已經有人建立好了。於是他就在「numbers」後面加了小數點果然看到許多函式,其中和排序相關的函式都有sort關鍵字。

https://ithelp.ithome.com.tw/upload/images/20230930/20129197sTSwkSqfYP.png

既然有特別命名為「sortDescending」遞減排序,卻沒看到遞增的「sortAscendending」,那麼「sort」應該就是遞增排序了。勇者雖然這麼推測,但為防萬一,還是執行了一遍來驗證他的想法。

https://ithelp.ithome.com.tw/upload/images/20230930/201291974suvaEWgOs.png

果然如他的預測,和蕭凱琪的氣泡排序有著同樣的效果。

等蕭凱琪過來問勇者有沒有遇到問題的時候,勇者興奮的提出他的發現。「我發現『sort』函式就可以完成大小排序了!」

蕭凱琪瞥了一眼程式碼畫面,對勇者的發現表示滿意。「嗯,的確可以取代。我之前也用『measureTimeMillis』確認過預設的排序函式比氣泡排序法的速度效率要好。」

https://ithelp.ithome.com.tw/upload/images/20230930/20129197ffkkhCRU1B.png

「啊,對喔,還要注意效率。」勇者有點不好意思,他沒想到那麼仔細。

蕭凱琪笑笑:「也沒關係啦,預設的功能經過各種考驗,通常已經做到逼近極限,比如『sort』函式如果我們往下追溯,是Java提供的『DualPivotQuicksort』雙軸快速排序,而裡面還有針對陣列長度採用不同排序的技巧。比我提供的單純氣泡搜尋要好上太多。」

https://ithelp.ithome.com.tw/upload/images/20230930/20129197TdIfChXyZ6.png

https://ithelp.ithome.com.tw/upload/images/20230930/20129197zHYeFOeqgK.png

https://ithelp.ithome.com.tw/upload/images/20230930/20129197k8wSYSBVQ8.png

勇者困惑的說:「那為什麼妳給的程式碼不用預設的『sort』函式呢?」

蕭凱琪表情略為尷尬,先轉頭對著旁邊的空氣苦笑幾聲後,就調整回原本的表情,大大方方的說:「因為這個程式碼並不是拿來商用,而是用來練習實作演算法的,大學或是一些公司的考試會考比較基礎的概念來確認你懂多少演算法和資料結構。」


上一篇
Day08#3 數字陣列組成字串就是這麼簡單
下一篇
Day09#2 經典但不實用的氣泡排序
系列文
Kotlin快速轉職系列-勇者篇30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言