SOURCE

//排序     去重    不重复随机数
/*一、冒泡排序算法(最少判断次数法)*/
var arrTest = [1,2,3,4,5,6];
		for(var i =0; i<arrTest.length; i++) {

			for(var j = 0; j<arrTest.length; j++) {
				var a,b;
				a = arrTest[j];
				b = arrTest[j+1];
				
				if(a<=b){
					arrTest[j] = b;
					arrTest[j+1] = a;
				}
	
				if(j<5) {
					document.write('['+arrTest+ ']');
				} else {
					document.write('['+arrTest+ ']'+'<hr>');
				}
				
				
			}
			
			
		}
/*以上先了解最多的运行次数,以下着重实现降低运行次数*/







var arr = [1,55,61,7,9,8,10,10];
	
	for(var i =0; i<arr.length-1; i++){
		var flag = true;
		for(var j = 0; j<arr.length-i-1;j++){  
			
			var a = arr[j];
			var b = arr[j+1];
			if(a<b){
				flag = false;
				arr[j] = b;
				arr[j+1] = a;
			}
		}
		
		if(flag){
			break;
		}
		
		
	}
	
	console.log(arr);



/*二、去重方法1*/
var arr = ["2",1,2,2,4,8,4,2,null,null,Function,Array];
Array.prototype.unique1 = function()
{
	var n = []; //一个新的临时数组
	for(var i = 0; i < this.length; i++) //遍历当前数组
	{
		//等于-1表示没找(没找到就是与先有的元素不重复),没找到这个数组就把它push到临时数组。
		if (n.indexOf(this[i]) == -1) n.push(this[i]);
	}
	return n;
}

function unique(arr){
	var n = []; //一个新的临时数组
	for(var i = 0; i < arr.length; i++) //遍历当前数组
	{
		//等于-1表示没找到,没找到这个值,数组就把它push到临时数组。
		if (n.indexOf(arr[i]) == -1) n.push(arr[i]);
	}
	return n;
}
console.log(  arr.unique1() ); 
//console.log(  unique(arr) ); 
/*去重方法二*/		
var arr = [4,8,1,2,2,2,4];
Array.prototype.unique2 = function()
	{
		this.sort();    //[1,2,2,2,4,4,8]   //先复习冒泡排序。 
		var re=[this[0]];      //1
		for(var i = 1; i < this.length; i++)
		{
			if( this[i] !== re[re.length-1])  //2!== 1 (因为数组被从小到大排序,所以只用临时数组最末项去和当前数组项比较即可)
			{
				re.push(this[i]);    //re.push(2)
			}
		}
		return re;
	}
	
	console.log(  arr.unique2() ); 
	
	
/*去重方法三*/	
function onlyUnique(value,index,self){
	return self.indexOf(value) === index;
}

var a = ["2",1,2,2,4,8,4,2,null,null,Function,Array];
console.log( a.filter( onlyUnique ) );

/*随机数 Math.random()其实就是产生一个0~1之间的小数,但是不包括0和1
四舍五入:Math.round(5.3)与5.335.toFixed(2)
*/

/*三、产生[1,y]之间不重复的随机整数*/
function ranNum(n,y){
		if(n>y){
			alert('随机数个数不能超过随机数范围');
			return false;
		}
		var arr = [];
		while( arr.length<n ){
			var num = parseInt(  Math.random()*y  )+1;  // [1,y]之间的随机数
			if(arr.indexOf(num)==-1){
					arr.push(num);
			}
		}
		return arr;
		
	}
console.log( ranNum(7,36) );
console 命令行工具 X clear

                    
>
console