选择排序——简单选择排序

简单选择排序跟冒泡排序有些相似,只是冒泡排序相对交换的数要多,前者只在需要交换的地方才交换。如果按升序排列,第一趟,选择最小的元素与第一个元素交换,在查询的过程当中,没有元素的交换,只有指向的移动,min总是指向最小元素的下标。

public class SelectSort  
{
    public void selectSort(int[] r,int low,int high)
    {
        for(int k=low;k<high-1;k++)//作n-1趟选取
        {
            int min=k;
            // 将最小元素下标指向min           
for(int i=k+1;i<=high;i++) if(r[i]<r[min])//写成for(int i=k+1;k<=high && r[i]<r[min])min=i;是不一样的因为如果中间不成立就跳出了循环, min=i; if(k!=min) { int temp=r[min]; r[min]=r[k]; r[k]=temp; } } } public static void main(String[] args) { SelectSort b=new SelectSort(); int[] a={4,8,3,6,9,7,5,2,1}; b.selectSort(a,0,8); for(int i=0;i<a.length;i++) System.out.print(a[i]+" "); } }

 

posted @ 2013-10-27 10:53  JMSXH  阅读(130)  评论(0编辑  收藏  举报