JavaScript中数组的排序方法:1.冒泡排序 2.选择排序

 
	//1.选择排序:
	    //从小到大排序:通过比较首先选出最小的数放在第一个位置上,然后在其余的数中选出次小数放在第二个位置上,依此类推,直到所有的数成为有序序列。
	  
		var arr2=[19, 8, 27, 6, 15, 4];
		 for(var i=0;i<arr2.length-1;i++){
		 	for(var j=i+1;j<arr2.length;j++){
		 		if(arr2[j]<arr2[i]){   
		 			var temp=arr2[j];
		 			arr2[j]=arr2[i];
		 			arr2[i]=temp;
		 		}
		 	}
		 }
		 console.log(arr2);//4,6,8,15,19,27
	/*
		 * //第一轮:第一个数字和后面的每一位进行比较,选择出最小的一个放在第一位上。
		  [8, 19, 27, 6, 15, 4]    //8和19比较选择出8放在第一位
		  [8, 19, 27, 6, 15, 4]    //8和27比较选择出8放在第一位
		  [6, 19, 27, 8, 15, 4]    //8和6比较选择出6放在第一位
		  [6, 19, 27, 8, 15, 4]    //6和15比较选择出6放在第一位
		  [4, 19, 27, 8, 15, 6]    //6和4比较选择出4放在第一位
		  
		 //第二轮:第二个数字和后面的每一位进行比较,选择出最小的一个放在第二位上。
		  [4, 19, 27, 8, 15, 6]    //19和27比较选择出19放在第二位
		  [4, 8, 27, 19, 15, 6]    //19和8比较选择出8放在第二位
		  [4, 8, 27, 19, 15, 6]    //8和15比较选择出8放在第二位
		  [4, 6, 27, 19, 15, 8]    //8和6比较选择出6放在第二位
		 
		 * 
	    //第三轮:第三个数字和后面的每一位进行比较,选择出最小的一个放在第三位上。
		[4, 6, 19, 27, 15, 8]    //27和19比较选择出19放在第三位
		[4, 6, 15, 27, 19, 8]    //19和15比较选择出15放在第三位
		[4, 6, 8, 27, 15, 19]    //15和8比较选择出8放在第三位
		
		
		//第四轮:第四个数字和后面的每一位进行比较,选择出最小的一个放在第四位上。

		[4, 6, 8, 15, 27, 19]    //27和15比较选择出15放在第四位
		[4, 6, 8, 15, 27, 19]    //15和19比较选择出15放在第四位
		
		
		// 第五轮:第五个数字和后面的每一位进行比较,选择出最小的一个放在第五位上。
		 
		[4, 6, 8, 15,19, 27]    //27和19比较选择出19放在第五位

		 */

  

//2.冒泡排序:  从头到尾,比较相邻的两个元素的大小,如果符合交换条件,交换两个元素的位置。每一轮比较中,都会选出一个最大的数,放在正确的位置
		var arr = [19, 8, 27, 6, 15, 4];
		for(var i=0;i<arr.length;i++){
			for(var j=0;j<arr.length-i;j++){   //因为每一轮比较都会选择出最大的一位放在最后,下次再次比较时不用和已经选择出的进行比较,所以才会有  j<arr.length-i ;
				if(arr[j]>arr[j+1]){           //如果前面的数比后面的数大,定义一个临时变量来交换两个数的位置。
				 var temp=arr[j];        
				  arr[j]=arr[j+1];
				  arr[j+1]=temp;
				}
			}
		}
		console.log(arr);// 4,6,8,15,19,27
		//从小到大排序:
		/*
		 * //第一轮:
		  [8, 19, 27, 6, 15, 4]
		  [8, 19, 27, 6, 15, 4]
		  [8, 19, 6, 27, 15, 4]
		  [8, 19, 6, 15, 27, 4]
		  [8, 19, 6, 15, 4, 27]
		  // 第一轮选出了最大的元素27放在了数组的最后一位
		  
		 //第二轮:
		 [8, 19, 6, 15, 4, 27]
		 [8, 6, 19, 15, 4, 27]
		 [8, 6, 15, 19, 4, 27]
		 [8, 6, 15, 4, 19, 27]
		 
		 //第二轮选出了最大的元素19放在了数组的倒数第二位
		 * 
	    //第三轮:
		[6, 8, 15, 4, 19, 27]
		[6, 8, 15, 4, 19, 27]
		[6, 8, 4, 15, 19, 27]
		
		//第三轮选出了最大的元素15放在了数组的倒数第三位
		 
		//第四轮:

		[6, 8, 4, 15, 19, 27]
		[6, 4, 8, 15, 19, 27]
		
		// 第四轮选出了最大的元素8放在了数组的倒数第四位
		 
		// 第五轮:
		 
		[4, 6, 8, 15, 19, 27]
		
		// 第五轮选出了最大的元素6放在了数组的第二位
		 */

  

  

posted @ 2018-09-06 14:35  唯美(vmei)  阅读(343)  评论(0编辑  收藏  举报