选择排序法-java详解案例

时间:2023-03-09 19:17:19
选择排序法-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;

  }

  }

  }