• 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放在了数组的第二位
    		 */
    

      

      

  • 相关阅读:
    HDU5976 Detachment (预处理前缀和+贪心+逆元)
    FJUT OJ 2584 QAQ的变强魔咒(KMP)
    HDU1867 A + B for you again(KMP)
    POJ 1469 COURSES(二分图模板题)
    HihoCoder
    HDU 3336 Count the string (基础KMP)
    POJ2185 Milking Grid(KMP)
    144.链表库以及迭代算法原理
    143.vector模板库
    152.字符串模板库
  • 原文地址:https://www.cnblogs.com/hgdzjp/p/9598201.html
Copyright © 2020-2023  润新知