JS資料演算法 排序

2021-10-25 22:20:22 字數 1886 閱讀 5359

let a =[1

,6,4

,33,9

,7,2

]console.

log(a.

sort

((a, b)

=> a - b)

)

// 交換方法1

function

swap1

(a,b)

// 交換方法2

function

swap2

(a,b)

// 交換方法3

function

swap3

(a,b)

從陣列第一項開始,每一項與下一項進行比較,如果大於下一項則互換位置,換完一輪則第一項是最小的一項

再從第二項開始比較,以此類推

因此一共需要比較陣列長度-1輪,每輪需要比較陣列長度-1再減去已比較輪數

// 實現陣列中的數字交換

function

swap

(arr,i,j)

// 氣泡排序

array.prototype.

bubble

=function

bubble()

}if(!flag)

break

; flag =

false;}

return that;

}let a =[1

,6,4

,33,9

,7,2

]console.

log(a.

bubble()

)

先將陣列第一項插入新陣列

再將陣列每一項新陣列中的每一項進行比較

如果大於則插入比較項之後,反之則插入比較項之前

// 氣泡排序

array.prototype.

insert

=function

insert()

if(j ===0)

}}return arr;

}let a =[1

,6,4

,33,9

,7,2

]console.

log(a.

insert()

)

找出中間項

每一項與中間項進行比較

如果大於中間項則插入儲存大於中間項數值的陣列,反之插入儲存小於中間項數值的陣列

將每個新陣列都進行快速排序(遞迴)

最終將左中右三個陣列或數值依次拼接

array.prototype.

quick

=function

quick()

let middleindex = math.

floor

(that.length /2)

, middlevalue = that.

splice

(middleindex,1)

[0],

arrleft =

, arrright =

;for

(let i =

0; i < that.length; i++

)return quick.

call

(arrleft)

.concat

(middlevalue, quick.

call

(arrright));

}let a =[1

,6,4

,33,9

,7,2

]console.

log(a.

insert()

)

JS排序演算法

function insertsort arr endif status new date st ms return arr function shellsort arr while increment 1 status new date st ms return arr function shel...

排序演算法(JS)

自己整理一下資料結構的排序演算法,用js寫了一下,測試正確。插入排序 var table 32,26,87,72,26,17 for var i 0 i 0 temp0 alert i table 快速排序 快速排序是找出乙個元素 理論上可以隨便找乙個 作為基準 pivot 然後對陣列進行分割槽操作...

js排序演算法

常見內部排序演算法有 插入排序 希爾排序 選擇排序 氣泡排序 歸併排序 快速排序 堆排序 技術排序等 從第乙個元素開始,該元素被當成已排序 取出下乙個元素,在已排序的元素序列中從後向前掃瞄 如果該元素大於新元素,將該元素移到下一位置 重複3步驟,直到找到已排序的元素小於或者等於新元素,將新元素插入到...