选择排序法-java案例详解

作者在 2014-01-31 23:01:06 发布以下内容

/**
 * 功能:选择排序法
 * 思想:第一次从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;
  }
 }
}

默认分类 | 阅读 1075 次
文章评论,共0条
游客请输入验证码
浏览18258次
文章分类
最新评论