数组排序的几种方法

1、sort()

sort()主要是对数组中的字符串进行排序,通过比较ASCII的大小,对于数字的比较使用格式

数组名.sort(function(num1,num2){
			return num1-num2;
		})
这是升序,如果降序将num1 -num2改成num2 -num1;


2、选择排序法

原理就是用前一个数和后面每一个的比较,如果大于就交换位置(假设是从小到大排序),依次比较,

// 选择排序法 用前一个数和后一个比较,如果是升序,大的值放后面,如果是降序,小的放后面
/*	var arr= [21,34,2,45,4,60,3];
	for (var i=0; i<arr.length; 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;
			}
			
		}
	}
	console.log(arr);*/


3、冒泡排序

原理就是相邻的元素之间进行比较

依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到最大数前的一对相邻数,将小数放前,大数放后,第二趟结束,在倒数第二个数中得到一个新的最大数。如此下去,直至最终完成排序。
// 冒泡排序方法,挨个去比较
	var arr = [12,4,34,5,23,33];
	function maoPao(arr){
		//比较的轮数
		for (var i=1; i<arr.length; i++){
			// 每一轮比较的次数
			for (var j=1, k=0; j<=arr.length-i; j++, k++){
				// 进行比较
				if(arr[k]>arr[k+1]){
					var temp = arr[k];
					arr[k] = arr[k+1];
					arr[k+1] = temp;	
				}	
			}
		}
	}
	maoPao(arr);
	console.log(arr);




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值