最近研究排序演算法
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...