欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java数据结构及算法实例:选择排序 Selection Sort

程序员文章站 2024-03-04 11:18:11
/** * 选择排序的思想: * 每次从待排序列中找到最小的元素, * 然后将其放到待排的序列的最左边,直到所有元素有序 * * 选...
/** 
 * 选择排序的思想: 
 * 每次从待排序列中找到最小的元素, 
 * 然后将其放到待排的序列的最左边,直到所有元素有序 
 *  
 * 选择排序改进了冒泡排序,将交换次数从o(n^2)减少到o(n) 
 * 不过比较次数还是o(n) 
 */ 
package al; 
public class selectsort { 
   
  public static void main(string[] args) { 
     
    selectsort selectsort = new selectsort(); 
    int[] elements = { 14, 77, 21, 9, 10, 50, 43, 14 }; 
    // sort the array 
    selectsort.sort(elements); 
    // print the sorted array 
    for (int i = 0; i < elements.length; i++) { 
      system.out.print(elements[i]); 
      system.out.print(" "); 
    } 
  } 
   
  /** 
   * @author 
   * @param array 待排数组 
   */ 
  public void sort(int[] array) { 
    // min to save the minimum element for each round 
    int min, tmp; 
     
    for(int i=0; i<array.length; i++) { 
      min = i; 
      // search for the minimum element 
      for(int j=i; j<array.length; j++) { 
        if(array[j] < array[min]) { 
          min = j; 
        }         
      } 
      // swap minimum element 
      tmp = array[i]; 
      array[i] = array[min]; 
      array[min] = tmp;       
    } 
  } 
}