首页 > 编程语言 > 详细

选择排序

时间:2019-10-12 21:28:55      阅读:75      评论:0      收藏:0      [点我收藏+]

选择排序

思路

1.一开始的时候,整个数组是无序的,我们遍历数组找到最小的值,将这个最小的值放到它应该放的位置也就是a[0]
2.接着我们再从a[1]到a[n]中继续遍历找到最小的值,并将它放到正确的地方a[1]
3.这样a[0],a[1]就是有序的了
4.我们在循环这样的过程从a[i]-a[n]中找到最小的值,放到a[i]位置,使得前i个元素有序
5.直到整个数组是有序的

代码

package sort;

public class SelectSort {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int[] arr= {7,6,5,4,3,2,1};
        SelectSort(arr);
        for(int i=0;i<arr.length;i++) {
            System.out.printf("%d ",arr[i]);
        }
        System.out.println();
    }
    
    public static void SelectSort(int[] a) {
        int minIndex=0;//最小值的下标
        int min=0;//最小值
        int len=a.length;//获取a的长度
        for(int i=0;i<len-1;i++) {
            min=a[i];//假设a[i]为[i,len)的中的最小值
            minIndex=i;//最小下标为i
            for(int j=i+1;j<len;j++) {
                if(a[j]<a[minIndex]) {//在[i,len)中寻找最小值
                    minIndex=j;//如果有比假设最小值更加小的值就刷新下标和值
                    min=a[j];
                }
                int temp=a[i];//将找到的最小值放到对应正确的位置
                a[i]=a[minIndex];
                a[minIndex]=temp;
            }
        }
    }

}

选择排序

原文:https://www.cnblogs.com/mengxiaoleng/p/11663812.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!