1. バブルソート
隣接する 2 つの要素を比較および交換して配列をソートする
関数sort1(arr){
for(let i = 0; i < arr.length - 1; i++){
for(let j = 0; j<arr.length - i; j++){
if(arr[i]>arr[j+1]){
temp = arr[i]にします
arr[i] = arr[j]
arr[j] = 温度
}
}
}
arrを返します。
}
2. 選択ソート
ソートされていない配列から最小の要素が選択されるたびに、ソートされた配列の最後に配置され、配列が完成するまでこのプロセスが繰り返されます。
function sort2(arr){ const n=arr.length for(let i=0;i<n-1;i++){ let minIndex=i for (let j=i+1;j<n;j++){ if( arr[j]<arr[minIndex]){ minIndex=j } } if(minIndex!=i){ [arr[i],arr[minIndex]]=[arr[minIndex],arr[i]] } } returnああ、}
3. 挿入ソート
配列をソートされた部分とソートされていない部分に分割します。最初、ソートされた部分には 1 つの要素のみが含まれます。すべての要素がソートされるまで、そのたびに未ソートの部分から要素が選択され、ソートされた部分の正しい位置に挿入されます。
function sort3(arr){ const n = arr.length for(let i = 1;i<n;i++){ const key = arr[i] let j = i-1; while(j >=0&&arr[j]>key){ arr[j+1] = arr[i] j--; } arr[j+1]=key } arr を返します。 }
4. クイックソート
参照要素を選択し、配列を 2 つの部分に分割します。一部の要素は参照要素より小さく、要素の他の部分は参照要素より大きく、2 つの部分を再帰的に並べ替えます。
関数 sort4(arr,left,right){ if(left>right){ const pivotIndex = getpivotIndex(arr,left,right) sort4(arr,left,pivotIndex-1) sort4(arr,pivotIndex+1,right) } return arr } function getpivotIndex(arr,left,right){ const pivot = arr[right] let i =left-1 for(let j = left;j<right;j++){ if(arr[j] <= pivot){ i++ [arr[i],arr[j]] = [arr[i],arr[j]] } } [arr[i+1],arr[right]] = [arr[right],arr[i+ 1]]
i + 1 を返します。
}