| 
	本视频是解读性视频,所以希望您已经看过了本知识点的内容,并且编写了相应的代码之后,带着疑问来观看,这样收获才多。 不建议一开始就观看视频
	   16分43秒 本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器。 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)。 chrome 的 视频下载插件会影响播放,如 IDM 等,请关闭或者切换其他浏览器 步骤 1 : 选择法排序 步骤 2 : 冒泡法排序 步骤 3 : 练习-排序 步骤 4 : 答案-排序 
					选择法排序的思路:
 把第一位和其他所有的进行比较,只要比第一位小的,就换到第一个位置来 比较完后,第一位就是最小的 然后再从第二位和剩余的其他所有进行比较,只要比第二位小,就换到第二个位置来 比较完后,第二位就是第二小的 以此类推 public class HelloWorld {
	public static void main(String[] args) {
		int a [] = new int[]{18,62,68,82,65,9};
		//排序前,先把内容打印出来
		for (int i = 0; i < a.length; i++) {
			System.out.print(a[i] + " ");
		}
		System.out.println(" ");
		//选择法排序
	
		//第一步: 把第一位和其他所有位进行比较
		//如果发现其他位置的数据比第一位小,就进行交换
		
		for (int i = 1; i < a.length; i++) {
			if(a[i]<a[0]){   
				int temp = a[0];
				a[0] = a[i];
				a[i] = temp;
			}
		}
		//把内容打印出来
		//可以发现,最小的一个数,到了最前面
		for (int i = 0; i < a.length; i++) {
			System.out.print(a[i] + " ");
		}
		System.out.println(" ");
		
		//第二步: 把第二位的和剩下的所有位进行比较
		for (int i = 2; i < a.length; i++) {
			if(a[i]<a[1]){   
				int temp = a[1];
				a[1] = a[i];
				a[i] = temp;
			}
		}
		//把内容打印出来
		//可以发现,倒数第二小的数,到了第二个位置
		for (int i = 0; i < a.length; i++) {
			System.out.print(a[i] + " ");
		}
		System.out.println(" ");		
		
		//可以发现一个规律
		//移动的位置是从0 逐渐增加的
		//所以可以在外面套一层循环
		
		for (int j = 0; j < a.length-1; j++) {
			for (int i = j+1; i < a.length; i++) {
				if(a[i]<a[j]){   
					int temp = a[j];
					a[j] = a[i];
					a[i] = temp;
				}
			}
		}
		
		//把内容打印出来
		for (int i = 0; i < a.length; i++) {
			System.out.print(a[i] + " ");
		}
		System.out.println(" ");		
	}
}
 
					冒泡法排序的思路:
 第一步:从第一位开始,把相邻两位进行比较 如果发现前面的比后面的大,就把大的数据交换在后面,循环比较完毕后,最后一位就是最大的 第二步: 再来一次,只不过不用比较最后一位 以此类推 public class HelloWorld {
    public static void main(String[] args) {
        int a [] = new int[]{18,62,68,82,65,9};
        //排序前,先把内容打印出来
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i] + " ");
        }
        System.out.println(" ");
        //冒泡法排序
     
        //第一步:从第一位开始,把相邻两位进行比较
        //如果发现前面的比后面的大,就把大的数据交换在后面
         
        for (int i = 0; i < a.length-1; i++) {
            if(a[i]>a[i+1]){   
                int temp = a[i];
                a[i] = a[i+1];
                a[i+1] = temp;
            }
        }
        //把内容打印出来
        //可以发现,最大的到了最后面
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i] + " ");
        }
        System.out.println(" ");
         
        //第二步: 再来一次,只不过不用比较最后一位
        for (int i = 0; i < a.length-2; i++) {
            if(a[i]>a[i+1]){   
                int temp = a[i];
                a[i] = a[i+1];
                a[i+1] = temp;
            }
        }
        //把内容打印出来
        //可以发现,倒数第二大的到了倒数第二个位置
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i] + " ");
        }
        System.out.println(" ");        
         
        //可以发现一个规律
        //后边界在收缩
        //所以可以在外面套一层循环
         
        for (int j = 0; j < a.length; j++) {
            for (int i = 0; i < a.length-j-1; i++) {
                if(a[i]>a[i+1]){   
                    int temp = a[i];
                    a[i] = a[i+1];
                    a[i+1] = temp;
                }
            }
        }
         
        //把内容打印出来
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i] + " ");
        }
        System.out.println(" ");        
    }
}
 
				
										
				在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
			 
本视频是解读性视频,所以希望您已经看过了本答案的内容,带着疑问来观看,这样收获才多。 不建议一开始就观看视频
   1分49秒 本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器。 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)。 chrome 的 视频下载插件会影响播放,如 IDM 等,请关闭或者切换其他浏览器 public class HelloWorld {
    public static void main(String[] args) {
        int a[] = new int[5];
        // 使用随机数填充
        for (int i = 0; i < a.length; i++)
            a[i] = (int) (Math.random() * 100);
 
        // 排序前,先把内容打印出来
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i] + " ");
        }
        System.out.println(" ");
        // 选择法正排序
        for (int j = 0; j < a.length - 1; j++) {
            for (int i = j + 1; i < a.length; i++) {
                if (a[i] < a[j]) {
                    int temp = a[j];
                    a[j] = a[i];
                    a[i] = temp;
                }
            }
        }
 
        // 把内容打印出来
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i] + " ");
        }
        System.out.println();
 
        // 冒泡法倒排序
 
        for (int j = 0; j < a.length; j++) {
            for (int i = 0; i < a.length - j - 1; i++) {
                if (a[i] < a[i + 1]) {
                    int temp = a[i];
                    a[i] = a[i + 1];
                    a[i + 1] = temp;
                }
            }
        }
        // 把内容打印出来
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i] + " ");
        }
 
        System.out.println(" ");
    }
}
 
				HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。
			   
		
		
		 	问答区域     
		 	
				
		  
	 
	  		
	  
	  	2025-01-06
	  		
	  				
	  					 
	  
					
						求指点 
					
					
						
							
						
											
							
					
					
					
	   
 
		回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢	
	 
	  		
	  
	  	2024-09-07
	  		
	  				
	  					 
	  
					
						没有看懂冒泡跟选择是什么区别呢 
					
					
						
							
						
											
							
					
					
					
	   
 
3 个答案 
	 pens123 跳转到问题位置 答案时间:2025-07-10 //选择排序
public class test3 {
    public static void main(String[] args) {
        int[] a=new int[5];
        a[0]=( int)(Math.random()*100);
        a[1]=( int)(Math.random()*100);
        a[2]=( int)(Math.random()*100);
        a[3]=( int)(Math.random()*100);
        a[4]=( int)(Math.random()*100);
        //正排序
        for (int i=0;i<a.length-1;i++){
            for (int j=i+1;j<a.length;j++){
                if (a[i]>a[j]){
                    int t=a[i];
                    a[i]=a[j];
                    a[j]=t;
                }
            }
        }
        System.out.print("正排序如下");
        System.out.print(Arrays.toString( a));
        System.out.println();
        //倒排序
        for (int i=0;i<a.length-1;i++){
            for (int j=0;j<a.length-1-i;j++){
                if (a[j]<a[j+1]){
                    int t=a[j];
                    a[j]=a[j+1];
                    a[j+1]=t;
                }
            }
        }
        System.out.print("倒排序如下");
        System.out.print(Arrays.toString( a));
    }
} 1563590a 跳转到问题位置 答案时间:2025-01-01 选择排序的重点在于“选择”
经过一轮循环,记录最小值的序号,a【0】依次与后续相比,如果有小的值就放在a【0】
冒泡排序重点在于比较
不断比较A[0][1]..[n-1]
如果有大的值就交换,即a[i]与a[i+1]进行比较。 Jk19882003 跳转到问题位置 答案时间:2024-11-04 选择是把最小的放在第一个
冒泡是把最大的放在最后 
		回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢	
	 
	  		
	  
	  	2024-06-05
	  		
	  				
	  					 
	  
					
						没问题 
					
					
						
							
						
											
							
					
					
					
	   
	  		
	  
	  	2023-09-01
	  		
	  				
	  					 
	  
					
						没问题 
					
					
						
							
						
											
							
					
					
					
	   
	  		
	  
	  	2023-03-29
	  		
	  				
	  					 
	  
					
						选择排序算法问题 
					
					
						
							
						
											
							
					
					
					
	   提问太多,页面渲染太慢,为了加快渲染速度,本页最多只显示几条提问。还有 123 条以前的提问,请 点击查看 
			
			提问之前请登陆
			
		 
		提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢	
	 |