1. 程式人生 > 其它 >js的排序演算法

js的排序演算法

1.氣泡排序

思路:相鄰兩個數進行比較,如果第一個比第二個大則交換他們的位置。

   let arr=[1,9,6,5,4,2,3];
    for(var i=0;i<arr.length;i++){
        for(var j=i+1;j<arr.length;j++){
            if(arr[i]>arr[j]){
              const temp=arr[i]
                arr[i]=arr[j]
                arr[j]=temp
            }
        }
    }
    console.log(arr)}

2.選擇排序

思路:首先在原陣列中查詢最小值,將最小值放在最前面,接著在剩下的元素中查詢,放在最小值的後面,以此類推。

    let arr=[144,15,8,12,10,11]
for(var i=0;i<arr.length;i++){
    let minIndex=i  //陣列的最小值
    for(var j=i;j<arr.length;j++){ 
        if(arr[j]<arr[minIndex]){  //比較位置j的值是否比當前的最小值小,
            minIndex=j //如果是更新最小值
        }
    }
    
if(i!==minIndex){ //如果最小值和原來的最小值不同,交換位置 let temp=arr[i] arr[i]=arr[minIndex] arr[minIndex]=temp } } console.log(arr)

3.插入排序

1)第一個數已排序

2)將待插項第二個數和第一個數比較,插入適合的位置

3)接著將待插項第三個數和前兩個數進行比較,後面的將待插項元素依次和前面進行比較,找到對應的位置並插入

   let arr=[18,4,8,9,10,11,]
   let temp;
   for(var i=1;i<arr.length;i++){ //
從第二個數開始 temp=arr[i]; //臨時儲存 //從前往後查詢插入的位置 for(var j=i;j>0&&arr[j-1]>temp;j--){ arr[j]=arr[j-1] //將大於temp的arr[j]元素後移 } arr[j]=temp } console.log(arr)