日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

前端排序算法

發布時間:2024/8/1 HTML 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 前端排序算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

排序算法

冒泡排序

從運行時間來看,冒泡排序是最差的一個,冒泡排序比較任何兩個相鄰的項,如果第一個比第二個大,則交互位置,元素項向上移動至正確的順序,就像氣泡升至表面一樣。他的復雜度是O(n^2)。

function bubbleSort(arr) {let length = arr.length;for (let i = 0; i < length; i++) {for (let j = 0; j < length -1 -i; j++) {if (arr[j] > arr[j+1]) {[arr[j], arr[j+1]] = [arr[j+1], arr[j]];}}} }

選擇排序

選擇排序大體是找到數組中最小的值放在第一位,找到第二小放在第二位,以此類推。他的復雜度是O(n^2)。

function selectSort(arr) {let length = arr.length, indexMin;for (let i = 0; i < length - 1; i++) {indexMin = i;for (let j = i; j < length; j++) {if (arr[indexMin] > arr[j]) {indexMin = j;}}if (i !== indexMin) {[arr[i], arr[indexMin]] = [arr[indexMin], arr[i]];}} }

插入排序

一般來說,插入排序都采用in-place在數組上實現。具體算法描述如下:

  • 從第一個元素開始,該元素可以認為已經被排序;
  • 取出下一個元素,在已經排序的元素序列中從后向前掃描;
  • 如果該元素(已排序)大于新元素,將該元素移到下一位置;
  • 重復步驟3,直到找到已排序的元素小于或者等于新元素的位置;
  • 將新元素插入到該位置后;
  • 重復步驟2~5。
  • function insertionSort(arr) {let len = arr.length;let current, preIndex;for (let i = i; i < len; i++) {preIndex = i - 1;current = arr[i];while (preIndex >= 0 && arr[preIndex] > current) {arr[preIndex + 1] = arr[preIndex];preIndex--;}arr[preIndex + 1] = current;return arr;} }

    快速排序

    1)在數據集之中,選擇一個元素作為"基準"。
    2)所有小于"基準"的元素,都移到"基準"的左邊;所有大于"基準"的元素,都移到"基準"的右邊。
    3)對"基準"左邊和右邊的兩個子集,不斷重復第一步和第二步,直到所有子集只剩下一個元素為止。

    function quickSort(arr) {if (arr.length <= 1) {return arr;}let midIndex = Math.floor(arr.length / 2);let mid = arr.splice(midIndex, 1)[0];let left = [];let right = [];for (let i = 0; i < arr.length; i++) {if (arr[i] < mid) {left.push(arr[i]);} else {right.push(arr[i]);}}return quickSort(left).concat([mid], quickSort(right)); } 與50位技術專家面對面20年技術見證,附贈技術全景圖

    總結

    以上是生活随笔為你收集整理的前端排序算法的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。