排序演算法集合

2021-09-24 07:00:16 字數 1296 閱讀 1670

一. 氣泡排序

// 思路:比較相鄰的元素,每次比較都會生成最大或者最小值放在最後,所以每輪比較次數會遞減

function

sort(arr) }}

}複製**

二. 快排

// 思路:雙指標 + 遞迴分治。每次比較都能找到基值的位置,然後遞迴比較基值左右的部分

function

sort(arr, start, end)

[arr[start], arr[left]] = [arr[left], arr[start]];

// 左右分治

sort(arr, start, left - 1);

sort(arr, left + 1, end);

}複製**

三. 選擇排序

// 思路:和冒泡有點相似,每輪比較得出該輪的最小值,然後把最小值放在最前面;然後比較剩下的值,得出次小值。

function

sort(arr)

return arr;

}複製**

四. 插入排序

// 思路: 從陣列的第二項開始,將元素和該元素之前的元素級比較,如果比前面的元素小,則繼續往前比較,直至

比較到第乙個位置或者出現該元素大於前面的元素為止。將該元素插到這個位置。

function sort(arr)

if (j != i)

}return arr;

}複製**

五. 希爾排序

思路: 。。。。。。

function

sort(arr)

} }return arr;

}複製**

六. 計數排序

思路: 建立另乙個陣列來對映**陣列,對映規則為陣列的索引對應**陣列的值,陣列索引對應的值對映**陣列值出現的次數。

舉個例子:

const originarr = [4,3,2,1,3,2]; => const maparr = [0, 1, 2, 2, 1];

實現:function

sort(arr)

const results = ;

let index = 0;

for (let j = 0; j < arr2.length; j += 1)

} return results;

}複製**

排序演算法集合

氣泡排序 public static int maopao int param return param 快速排序 public static int quick int param,int left,int right return param 分割陣列,相當於分治演算法,快速排序的核心 priv...

排序演算法集合

從未排序的集合中找出乙個元素,依次與已排序的集合元素進行比較,如果滿足規則,小於或是等於,直接插入,依次迴圈,直至待排序集合元素為空。清單.插入排序 直接插入排序 param arr public void insertsort int arr 從待排序元素集合中,找出其中最大或是最小的元素,插入到...

排序演算法集合

就按照 演算法導論 裡面的順序寫吧 原理都不講了,只是貼一下 給參考。其實書上也寫得很清楚,我只是用c 實現出來而已。1.歸併排序 merge sort include include include include include using namespace std 二路歸併排序 遞迴實現 v...