数组——选择排序

选择排序

import java.util.Arrays;

public class XuanZe {

    public static void main(String[] args) {
        int [] a={30, 98, 69, 86, 33};
        System.out.println(Arrays.toString(a));
        System.out.println("========================");
        sort(a);//排序方法
        System.out.println("=========================");
        System.out.println(Arrays.toString(a));
    }

    private static void sort(int[] a) {
        for(int i=0;i<a.length;i++)
        {
            /*   i
             *      i+1
             * [30, 98, 69, 86, 33]
             */
            //i到末尾,选择最小值位置的下标
            int index=min(a,i);
            //index位置的最小值交换到i位置
            swap(a,i,index);
            System.out.println(Arrays.toString(a));     }
    }

    private static void swap(int[] a, int i, int j) {
        int t=a[i];
        a[i]=a[j];
        a[j]=t;
    }

    private static int min(int[] a, int i) {
        int m=i;
        //假设i位置最小
        //找到j位置更小
        for(int j=i+1;j<a.length;j++)
        {
            if(a[j]<a[m])
            {
                m=j;//把m定位到j位置
            }
        }
        return m;
    }

    
}

运行结果

[30, 98, 69, 86, 33]
========================
[30, 98, 69, 86, 33]
[30, 33, 69, 86, 98]
[30, 33, 69, 86, 98]
[30, 33, 69, 86, 98]
[30, 33, 69, 86, 98]
=========================
[30, 33, 69, 86, 98]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容