js的排序演算法
阿新 • • 發佈:2021-11-13
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)