java之排序算法-------选择排序

java选择排序

选择排序的思路

  • 1.先找到数组中最大或者最小的元素 放到数组的一端
  • 2.再剩余的元素中再找到最大的放到 已排序的末尾
  • 循环执行 直到结束

图解排序思路过程

在这里插入图片描述

代码   ----  这里采用的是从小到大的排序方法

public class SelectSort {                                                         
	public static void main(String[] args) {                                      
		int[] array = {9,5,2,7};                                                  
		selectSortMin2Max(array);                                                 
		selectSortMax2Min(array);                                                                                           
	}                                                                             
                                                                                  
	static void selectSortMin2Max(int[] array) {                                  
		/*                                                                        
		 * 选择排序的思路                                                                
		 * 1.先找到数组中最大或者最小的元素 放到数组的一端                                              
		 * 2.再剩余的元素中再找到最大的放到 已排序的末尾                                               
		 * 循环执行 直到结束                                                              
		 * */                                                                     
                                                                                  
		//方法从小到大排列                                                                
		for (int i = 0; i < array.length; i++) {                                  
			int minIndex = i;// 最小数的索引                                            
			for (int j = i + 1; j < array.length; j++) {                          
				if (array[minIndex] > array[j]) {       //如果存在比假定的最小数还小的数         
					minIndex = j;     //将该数的索引变为最小数的索引                            
				}                                                                 
			}                                                                     
				//进行数值的交换操作                                                       
				int temp = array[i];                                              
				array[i] = array[minIndex];      //将最小的数排在最前面                     
				array[minIndex] = temp;          //将两个数进行交换数值                     
                                                                                  
			}                                                                     
			System.out.println(Arrays.toString(array));                           
		}                                                                         
                                                                                  
                                                                                  
	//见名知意  方法就是从大到小排列                                                            
	static void selectSortMax2Min(int[] array) {                                  
		for (int i = 0; i < array.length - 1; i++) {                              
			int maxIndex = i;  //将第一个数作为假定的最大数                                    
			for (int j = i + 1; j < array.length; j++) {                          
				if (array[j] > array[maxIndex]) {            //如果存在比假定的数还大的数      
					maxIndex = j;  //将该数的索引做为最大数的索引                               
				}                                                                 
			}                                                                     
				//进行数值交换                                                          
				int temp = array[i];//将前一个数拿出来                                    
				array[i] = array[maxIndex];          //将最大值放在最前面的                 
				array[maxIndex] = temp;         //将前一个数放在最大值的后面                   
			}                                                                     
			System.out.println(Arrays.toString(array));                           
		}                                                                         

排序结果
[2, 5, 7, 9]
[9, 7, 5, 2]

猜你喜欢

转载自blog.csdn.net/weixin_44109726/article/details/96568616