四種面試常見排序演算法

2021-09-02 05:35:30 字數 912 閱讀 2396

特點:效率低,實現簡單

原理:比較兩個相鄰的元素,將值大的元素交換至右端。

public static void bubblesort(int array) 

}}

特點:效率低,容易實現。

思想:每一趟從待排序序列選擇乙個最小的元素放到已排好序序列的末尾,剩下的為待排序序列,重複上述步驟直到完成排序。

public static void selectsort(int array) 

}}

特點:效率低,容易實現。

思想:將陣列分為兩部分,將後部分元素逐一與前部分元素比較,如果前部分元素比array[i]小,就將前部分元素往後移動。當沒有比array[i]小的元素,即是合理位置,在此位置插入array[i]

public static void insertionsort(int array) 

}}

特點:高效,時間複雜度為nlogn。

採用分治法的思想:首先設定乙個軸值pivot,然後以這個軸值為劃分基準將待排序序列分成比pivot大和比pivot小的兩部分,接下來對劃分完的子串行進行快排直到子串行為乙個元素為止。

public static void quicksort(int array, int low, int high) 

t = array[low];

array[low] = array[p_pos];

array[p_pos] = t;

// 分而治之

quicksort(array, p_pos + 1, high);// 排序右半部分

quicksort(array, low, p_pos - 1);// 排序左半部分

}}

總結四種常見排序演算法

氣泡排序 nsmutablearray arrayordermethod nsmutablearray array return array 快速排序 void quicksortwitharray nsmutablearray adata left nsinteger left right nsi...

常見的四種排序演算法

void bubblesort int a,int size,int order order為1代表公升序,氣泡排序演算法 void selectsort int a,int size,int order order為1代表公升序,選擇排序演算法 if k i void insertsort int...

排序演算法(四種)

氣泡排序是非常容易理解和實現,以從小到大排序舉例 設陣列長度為n。氣泡排序從前往後遍歷和從後往前遍歷一樣的原理。目標陣列 3,5,2,6,4,9,7,12,11 從前往後 第一波 從第乙個數開始,如果第乙個數大於第二個數,就把這兩個數調換位置,否則保留之前的排列,第二次把第二個和第三個數比較,比較方...