数据结构&&排序---选择排序

选择排序:
所谓选择排序,就是不断从剩下的元素中选择最小的元素放入前面,那么“前面”我们就从下标为 0(i=0) 的第一个元素开始(此时我们假设下标为 0 的元素是最小的,minIndex=0,minIndex 就是最小值的索引),相应的剩下的元素则从 (i+1) 的位置开始,也就是从 1 开始,然后依次与 minIndex 所对应值进行比较,如果比这个小则更新这个 minIndex 的值,最后将minIndex所对应的值与 i 的位置进行交换

public  void sort(Comparable[] arr){
	  int n=arr.length;
	  for(int i = 0;i < n;i + +){                    //从0开始
	  
	  int minIndex = i;                              //第一次循环假设最小值的索引为0   
	  
	     for(int  j =i+1;j < n;j++){                     //后面的元素从 i的后一位开始
		 
		  if(arr[minIndex].compareTo(arr[j])>0){ // 如果有更小的元素,更新这个最小索引
			   minIndex=j;
		     }
		  }
	          Comparable temp = arr[i];              //与元素为i的位置交换
		  arr[i]=arr[minIndex];
		  arr[minIndex]=temp;
	}

  }

选择排序可视化:
1a72fb306ebe4ac18f02fff1efd7a08b-selectSort.gif

猜你喜欢

转载自blog.csdn.net/bingo_fang/article/details/80724212