--- type: slide tag: club class --- # 演算法 ## 排序篇 --- ## 排序 #### 排序(sorting),將一組資料一使用者需求,予以重新排列其順序。排序後之資料,優點為容易閱讀、統計分析、與快速搜尋所要之資料。 --- ## visualgo #### https://visualgo.net/en/sorting --- ## 氣泡排序法 ---- #### 從第一個元素開始,比較相鄰元素大小,如果順序有誤,則調整位置,全部掃描過一次後可以確定最後一個元素是全部元素中最大的。接著再掃描第二次...直到全部元素都排序過為止。 --- ## 選擇排序法 ---- #### 從序列中挑選出最小值,並放在新序列的最後端,直到原本序列中沒有任何元素。 --- ## 插入排序法 ---- #### 將元素逐一與排列好的元素做比較,並且找到對的位置插入,以此類推 --- ## 合併排序法 ---- #### 將序列拆成多個子序列,通常從中間將序列拆開直到子序列中的元素數量只有兩個(有可能會剩下一個元素),最後再合併兩個相鄰的子序列做排序。 #### ~~現在不理解沒關係,等等實作的時候就會懂了~~ --- ## 快速排序法 ---- #### 將序列的第一個元素作為起始點,將所有比起始點小的元素都移動到起始點的左邊,當起始點無法再更動時,將序列的最後一個元素作為第二個起始點,將所有比新起始點大的元素移到右邊,直到新起始點無法更動。 --- ## 計數排序法 ---- #### 計算序列中每個元素出現的次數,計算完後將每個元素由小到大排序,接著按照排序後的結果重複輸出該元素出現的次數。 --- ## 基數排序法 ---- #### 先將序列中的元素的個位數做排序,接著是十位數...直到最大的位數被判斷過。 --- ## 講這麼多排序法,大家應該很好奇在寫程式的時候會不會用到這些演算法對吧? ---- ## 答案是完全不會用到喔! ---- ## 畢竟幾乎所有語言都內建有排序功能的函式,所以聰明的人都會使用內建提供的快速排序,省時又省力。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up