js中数组排序常用的方法

1、Sort排序

排序描述:能够根据提供的排序规则,对数组元素进行排序

var arr = [9,88,67,24,39,74,28];

//sort
function fun(a,b){
	return a-b;//从小到大
    //从大到小 b-a
}
console.log(arr.sort(fun));//[9, 24, 28, 39, 67, 74, 88]

2、冒泡排序

工作原理:将数组中的相邻两个元素进行比较,将较大(较小)的数值通过两两相比,当前一个数比后一个大,就交换他们的位置

var arr = [9,88,67,24,39,74,28];

//冒泡排序
function bubbleSort(arr){
			for (var i=0;i<arr.length-1;i++) {
                //每一轮要比较的次数
				for (var j=0;j<arr.length-1-i;j++) {
                    //相邻元素两两对比
					if(arr[j] > arr[j+1]){
                        //元素交换
						var temp = arr[j];
						arr[j] = arr[j+1];
						arr[j+1] = temp;
					}
				}
			}
			return arr;
		}
console.log(bubbleSort(arr));//[9, 24, 28, 39, 67, 74, 88]

3、选择排序

 工作原理:在未排序序列中找到最小(最大)元素,存放到排序序列的起始位置,然后,再从剩下的未排序元素中继续找最小(最大)元素,然后放到已排序序列的末尾。

var arr = [9,88,67,24,39,74,28];

//选择排序
function selectSort(arr){
		for (var i=0;i<arr.length-1;i++) {
			for (var j=i+1;j<arr.length;j++) {
				if(arr[i] > arr[j]){
					var temp = arr[i];
					arr[i] = arr[j];
					arr[j] = temp;
				}
			}
		}
		return arr;
	}
console.log(selectSort(arr));//[9, 24, 28, 39, 67, 74, 88]

4、插入排序

工作原理:从第二个元素起,当前元素与其他元素进行对比,如果当前元素小于其他元素,其他元素后移,直到当前元素大于或等于其他元素,当前元素插入到其他元素的索引位置后;如果当前元素大于其他元素,不发生改变

var arr = [12,4,52,2,14,28,7];

//插入排序
function insertSort(arr){
	for (var i = 1; i < arr.length; i++) {
		var j = i - 1;
			while(j >= 0 && arr[j] > arr[i]){
				arr[j+1] = arr[j];
				j--;
			};
			arr[j+1] = arr[i];
		}
		return arr;
	}
console.log(insertSort(arr));//[2, 4, 7, 12, 14, 28, 52]

猜你喜欢

转载自blog.csdn.net/weixin_45990765/article/details/120380383