Javascript排序演算法(持續更新中 )

2021-07-24 03:18:28 字數 1130 閱讀 8637

最近研究排序演算法

1.氣泡排序(bubble sort) 適合資料規模很小的時候

氣泡排序最壞情況的時間複雜度是o(n²), 穩定

function bubble(arr)}}

console.log(arr);

}

2.直接插入排序(straight insertion sort)的做法是:

每次從無序表中取出第乙個元素,把它插入到有序表的合適位置,使有序表仍然有序。

第一趟比較前兩個數,然後把第二個數按大小插入到有序表中; 第二趟把第三個資料與前兩個數從後向前掃瞄,把第三個數按大小插入到有序表中;依次進行下去,進行了(n-1)趟掃瞄以後就完成了整個排序過程。

直接插入排序是由兩層巢狀迴圈組成的。外層迴圈標識並決定待比較的數值。內層迴圈為待比較數值確定其最終位置。直接插入排序是將待比較的數值與它的前乙個數值進行比較,所以外層迴圈是從第二個數值開始的。當前一數值比待比較數值大的情況下繼續迴圈比較,直到找到比待比較數值小的並將待比較數值置入其後一位置,結束該次迴圈。

時間複雜度:o(n^2)

空間複雜度:o(1)

是否穩定:否

temp(哨兵),儲存arr[i]的副本,是不至於因記錄後移而丟失arr[i]的內容。

它的主要作用是:在查詢迴圈中"監視"下標變數j是否越界。 穩定 

function insertsort(arr)

arr[j+1]=temp;

}} console.log(arr);

}

3.選擇排序

選擇排序(selection sort)是一種簡單直觀的排序演算法。它的工作原理是每一次從待排序的資料元素中選出最小(或最大)的乙個元素,存放在序列的起始位置,直

到全部待排序的資料元素排完。 

時間複雜度:o(n^2)

空間複雜度:o(1)

穩定性:選擇排序是不穩定的排序方法

function select_sort(arr)

} //找出待排序陣列中的最小值之後,與最初設定的min對比

if(min != i)

}console.log(arr);

}

javascript演算法排序

一 氣泡排序 思路 1.依次比較相鄰的兩個數,如果第乙個比第二個小,則位置不變,如果第乙個比第二個大,則位置調換,一輪下來,最後乙個是最大的數 2.對除了最後乙個之外的數重複第一步,直到只剩乙個數 氣泡排序 var arr 1,5,3,9,4 for var i arr.length 1 i 0 i...

JavaScript排序演算法

從前到後兩兩比較,把較大的換到後面,直到最後。function bubblesort arr return arr 在未排序佇列中找到最小或最大元素,和第一位數交換。然後找剩下的未排序的最小或最大元素和第二位數交換 function selectionsort arr temp arr i arr ...

javascript排序 查詢演算法大全

在pptv的實習結束了,忙著找工作的事,順便把資料結構的那本書重新複習了一遍。為了加深印象,特意把裡面的常用的排序 查詢演算法用js寫了一遍 具體的例項在我的github上,大家可以訪問的 js sort.html檔案 js插入排序 function insertsort arr else retu...