排序演算法(Sorting Algorithm)

文章推薦指數: 80 %
投票人數:10人

若沒有值交換則代表資料皆已排序好。

氣泡排序法(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



請為這篇文章評分?