选择排序法-java详解案例

/**  * 功能:选择排序法

 * 思想:第一次从R[0]-R[N-1]中选取最小值,与R[0]交换,第二次从R[1]-R[N-1]中选取最小值,与R[1]交换,

 * 第三次从R[2]-R[N-1]中选取最小值,与R[2]交换...第i次从R[i]-R[N-1]中选取最小值,与R[i-1]交换,

 * 第n-1次从R[n-2]-R[N-1]中选取最小值,与R[n-2]交换,总共通过n-1次,得到一个按排序码从小到大排列的

 * 有序序列。

 * 作者:徐守威

 */

package com.xushouwei;

public class T5 {

 /**  

* @param args  

*/  

public static void main(String[] args)

{   

  // TODO Auto-generated method stub   

  int arr1[]={1,6,0,-1,9,-100,90,10,15,-10};  

   //开始排序,创建一个Select类   

  Select select=new Select();   

  select.sort(arr1);      

  //输出最后结果  

   for(int i=0;i<arr1.length;i++)   

  {    

    System.out.print(arr1[i]+" ");  

   }

  }

}

//定义一个Select类

class Select

{  

  //选择排序  

  public void sort(int arr[])  

  {   

    //定义一个临时变量来存放交换的值   

    int temp=0;  

      for(int j=0;j<arr.length-1;j++)  

     {   

     //假设第一个数是最小的    

    int min=arr[j];    

    //定义最小下标    

       int minIndex=j;   

       for(int k=j+1;k<arr.length;k++)   

      {     

            if(min>arr[k])     

      {      

      //修改     

      min=arr[k];     

      minIndex=k;    

     }    

  }    

  //但退出内循环后就找到这次的最小值  

   temp=arr[j];  

   arr[j]=arr[minIndex];   

  arr[minIndex]=temp;   

  }  

  }

  }

posted @ 2014-01-31 22:55  徐守威  阅读(2681)  评论(0编辑  收藏  举报