js最も一般的なソートアルゴリズムのいくつか

jsソートアルゴリズム:

まず、さまざまな並べ替え関数を後で呼び出すためのパラメーターを渡すために、いくつかの数値を含む配列をカスタマイズします

//自定义三个数字5 10 20 进行降幂排序
var a=[5,10,20,50,23];

1.sort()ソート

文字のみを並べ替えることができます。数字を並べ替える場合は、「比較関数(sortby()、名前は指定されていません。自分で名前を付けてください)」を使用する必要があります。
小さいものから大きいもの、ab、大きいものから小さいものへと並べ替えます。バへ

function sortby(a,b){
    
    
	return b-a;
}		
document.write(a.sort(sortby));

2.並べ替えを選択します

各サイクルは最大の要素を見つけ、それを前にソートされた最後の要素と交換します

//降序
function selectSort(a){
    
    
	var min=null
	for(var i=0;i<a.length-1;i++){
    
    
		min=i;
		for(var j=i+1;j<a.length;j++){
    
    
			if(a[j]>a[min]){
    
    
				min=j;
			}
			if(min!=i){
    
    
				var c=a[min];
				a[min]=a[j];
				a[j]=c;
			}
		}
	}
	return a;
}
document.write(selectSort(a))

3.バブルソート

隣接する2つの要素を比較し、小さい方の要素を後ろに置きます

function bubbleSort(a){
    
    
	for(var i=0;i<a.length-1;i++){
    
    
		for(var j=0;j<a.length-i-1;j++){
    
    
			if(a[j]<a[j+1]){
    
    
				var c=a[j];
				a[j]=a[j+1];
				a[j+1]=c;
			}
		}
	}
	return a;
}	
document.write(bubbleSort(a));

4.挿入ソート

配列内の添え字1の数字から始めて、前の要素と比較し、小さい方の要素を後ろに置きます

function insertSort(a) {
    
    
    for (var i = 1; i <a.length; i++) {
    
    
       // 待插元素
       var item = a[i];
       //排序后的末尾元素
       var j = i - 1;
       // 从排序好的末尾元素开始遍历
       // 如果大于待插元素就把当前元素往后挪
       while (j >= 0 && a[j] > item) {
    
    
           arr[j + 1] = a[j];
           j--;
       }
       // 插入待插元素
       a[j + 1] = item;
   }
   return arr;
}
document.write(insertSort(a));

5.クイックソート

function quickSort(a){
    
    
	if(a.length<=1){
    
    
		return arr
	}
	var midindex=Math.floor(arr.length/2)
	var miditem=a.splice(midindex,1)[0]
	var left=[]
	var right=[]
	for(var i=0;i<a.length;i++){
    
    
		if(miditem>a[i]){
    
    
			left.push(a[i])
		}else{
    
    
			right.push(a[i])
		}
	}
	return quickSort(left).concat(miditem,quickSort(right))
}

document.write(quickSort(a));

おすすめ

転載: blog.csdn.net/isfor_you/article/details/109514314