排序演算法(Sorting Algorithm)
文章推薦指數: 80 %
若沒有值交換則代表資料皆已排序好。
氣泡排序法(Bubble sort). 時間複雜度(Time Complexity): 平均Ο(n²). 最好Ο(n) — 當資料的順序為由小到大時(or 大到小),因此不 ...
GetunlimitedaccessOpeninappHomeNotificationsListsStoriesWrite排序演算法(SortingAlgorithm)本篇將簡單的介紹以及實作選擇排序法(Selectionsort)、插入排序法(Insertionsort)、氣泡排序法(Bubblesort)、合併排序法(Mergesort),排序演算法在新鮮人面試中也很常被提及。
Simplesorts選擇排序法(Selectionsort)、插入排序法(Insertionsort)兩種簡易的排序演算法(Simplesorts),適用於小量的資料,在大量的資料中效能表現較差。
選擇排序法(Selectionsort)選擇排序法—將資料分為"已排序"和"未排序",在未排序中找出最小(or最大)值,加入已排序的末端。
選擇排序法(Selectionsort)時間複雜度(TimeComplexity):最好Ο(n²)、最差Ο(n²)、平均Ο(n²)空間複雜度(SpaceComplexity):θ(1)Selectionsort—Python插入排序法(Insertionsort)插入排序法—將資料分為”已排序“和“未排序“,將未排序的第一筆值和已排序的資料由右而左相比大小並插入適當位置。
插入排序法(Insertionsort)時間複雜度(TimeComplexity):平均Ο(n²)最好Ο(1)-當資料的順序為由小到大時(or大到小),每回只需比較1次。
最差Ο(n²)-當資料的順序為由大到小時(or小到大),第i回合需比i次。
空間複雜度(SpaceComplexity):θ(1)Insertionsort—PythonBubblesorts氣泡排序法(Bubblesort),簡單但效率較低的排序方法,因為易於分析、理解因此常用於排序演算法介紹中,較少被使用在實際實作上。
氣泡排序法(Bubblesort)氣泡排序法—將資料中的第i筆和第i+1筆資料比較大小,若i+1大於i則交換兩值,依此搜尋所有值。
若沒有值交換則代表資料皆已排序好。
氣泡排序法(Bubblesort)時間複雜度(TimeComplexity):平均Ο(n²)最好Ο(n)—當資料的順序為由小到大時(or大到小),因此不須交換。
最差Ο(n²)—當資料的順序為由大到小時(or小到大),每回皆需要交換。
空間複雜度(SpaceComplexity):θ(1)Bubblesort—PythonEfficientsorts合併排序法(Mergesort)、堆積排序法(HeapSort)、快速排序法(QuickSort),皆屬於較快速的排序法,平均時間複雜度皆有Ο(nlogn),然而空間複雜度較其他排序來的高。
合併排序法(Mergesort)合併排序法—將資料分割為左子樹以及右子樹,接著遞迴分割每一次分割後的左子樹以及右子樹,直到每個子樹只剩下一個元素,再將這些子樹依小到大(or大到小)合併(Merge)。
合併排序法(Mergesort)時間複雜度(TimeComplexity):平均Ο(nlogn)、最差Ο(nlogn)、平均Ο(nlogn)空間複雜度(SpaceComplexity):θ(n)Mergesort—PythonMorefromPo-ChingLiuFollowSeniorsoftwareengineer!Linkedin:https://www.linkedin.com/in/benjaminliu0131/Github:https://github.com/totoroliu0131?tab=repositoriesLovepodcastsoraudiobooks?Learnonthegowithournewapp.TryKnowableAboutHelpTermsPrivacyGettheMediumappGetstartedPo-ChingLiu502FollowersSeniorsoftwareengineer!Linkedin:https://www.linkedin.com/in/benjaminliu0131/Github:https://github.com/totoroliu0131?tab=repositoriesFollowMorefromMediumSolSearchingArrayNishSolve:MaximumSubarrayShreyashPanchalMasteringRecursionForBeginners-(Part2)PranavChandodeGreedyAlgorithmsHelpStatusWritersBlogCareersPrivacyTermsAboutKnowable
延伸文章資訊
- 1[演算法] 氣泡排序法(Bubble Sort)
時間複雜度(Time Complexity). Best Case:Ο(n). 當資料的順序恰好為由小到大時; 第一次執行後,未進行任何swap ⇒ 提前結束. Worst Case:Ο(n2).
- 2氣泡排序Bubble sort
次,因此,時間複雜度為O(n2)。 Bubble sort 在已排序完成的序列上,只需要疊代序列一次,發現完全沒有置換任何元素,即停止排序,可達到最佳時間複雜度。
- 3演算法的應用 - 7
泡沫排序法 · 一般而言,泡沫排序法至少必須比較1+2+3+……+n-1=n(n-1)/2次,其時間複雜度為O(n2)。 · 泡沫排序法並不須額外佔用太多的記憶體,僅須一個交換時暫存的變數,因此...
- 4泡泡排序(Bubble Sort) - 寫點科普Kopuchat
泡泡排序(Bubble Sort) 的原理、虛擬碼、程式碼與時間複雜度分析。
- 5排序演算法(Sorting Algorithm)
若沒有值交換則代表資料皆已排序好。 氣泡排序法(Bubble sort). 時間複雜度(Time Complexity): 平均Ο(n²). 最好Ο(n) — 當資料的順序為由小到大時(or 大...