排序演算法 JS實現

2021-08-04 20:21:15 字數 1965 閱讀 8019

原文引用自這裡,這裡只是我自己的學習的補充以及筆記

時間複雜度,o(n2)

var arr = [5, 6, 3, 1, 8, 7, 2, 4];

function

insertsort

(arr) else

}} return arr;

}console.log(insertsort(arr));

時間複雜度,o(n2)

var arr = [5, 1, 6, 3, 1, 8, 7, 2, 4];

function

selectsort

(arr)

}// 當b的第乙個數字不是最小的值的時候,才進行交換

if (minindex !== i)

} return arr;

}console.log('選擇排序' + selectsort(arr2));

時間複雜度,o(nlogn)

function

merge

(arrleft, arrright) else

} // 當left和right中其中有乙個率先排序完成,剩餘的還未push進newarr的陣列就直接連線到temp中

return

newarr.concat(arrleft, arrright);

}// 拆分

function

mergesort

(arr)

var mid = math.

floor(arr.

length / 2), // 平均分配兩個陣列,使用floor是因為保證前乙個陣列都是偶數,假如有奇數個數字,只會留在最後

left = arr.slice(0, mid),

right = arr.slice(mid);

return merge(mergesort(left), mergesort(right));

}console.log('歸併排序' + mergesort(arr3));

時間複雜度,o(n2)

var arr4 = [5, 1, 6, 3, 1, 8, 7, 2, 4];

// 氣泡排序

function

bubblesort

(arr)

}} return arr;

}console.log('氣泡排序' + bubblesort(arr4));

時間複雜度,o(nlogn)

var arr5 = [5, 1, 6, 3, 1, 8, 7, 6, 2, 4];

// 快速排序

function

quicksort

(arr)

function

partition

(arr, left, right)

}// 找到標準值最後的位置之後,把標準值放置過來

swap(arr, index, right);

return index;

} function

sort

(arr, left, right)

var index = partition(arr, left, right);

sort(arr, left, index - 1);

sort(arr, index + 1, right);

} sort(arr, 0, arr.length - 1);

return arr;

}console.log('快速排序' + quicksort(arr5));

JS實現排序演算法

目錄 一 氣泡排序 方法名 sortarr 功能介紹 對陣列進行排序 冒泡演算法 arguments arr 必輸項 需要排序的陣列 action 非必輸項 up 公升序,down 降序 預設 let sortarr function arr,action 空陣列或者陣列1個元素,不需要排序直接跳出...

排序演算法(js實現)

氣泡排序 兩兩比較,遍歷一趟會挑出最大的值放在最後。function bubblesort arr return arr 選擇排序 從頭至尾掃瞄序列,每次找出最小的乙個元素,和第乙個元素交換,接著從剩下的元素中繼續這種選擇和交換方式,最終得到乙個有序序列。function selectsort ar...

js實現排序演算法

系統整理一下排序演算法。氣泡排序實質是小 大 的元素往前 後 調。進行n 1輪對比,每輪對比將最後乙個元素進行冒泡 排序 即每輪對比將最後乙個元素排出 每輪中的最大或最小 隨後將泡泡 排出元素 排除,進行下一次迭代對比,直到沒有元素可交換為止。這種方式通過多次迭代陣列來完成操作,不管是平均還是最壞的...