数组排序的几种方法

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; iarr[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; iarr[k+1]){
					var temp = arr[k];
					arr[k] = arr[k+1];
					arr[k+1] = temp;	
				}	
			}
		}
	}
	maoPao(arr);
	console.log(arr);




你可能感兴趣的:(数组排序的几种方法)