数组的选择排序

选择排序思想:

1.依次比较,使用0角标对应的元素依次后面角标对应的元素进行对比,小的往前放,第一次比较完毕,最小值出现在最小索引处…依次这样比较.
2.每一趟的排序过程:

原始序列{ 12,8,34,19,57 }


1.在进行选择排序过程中分成有序和无序两个部分,开始都是无序序列


结果:{ 12,8,34,19,57 }


2.从无序序列中取出最小的元素8,将8同无序序列第一个元素交换,此时产生仅含一个元素的有序序列,无序序列减一


结果:{8}   {12,34,19,57}


3.从无序序列中取出最小的元素12,将12同无序序列第一个元素交换,此时产生仅两个元素的有序序列,无序序列减一


结果:{8、12、}   {34,19,57}


4.从无序序列中取出最小的元素19,将19同无序序列第一个元素交换,此时产生含三个元素的有序序列,无序序列减一


结果:{8,12,19}   {34,57}


 5.从无序序列中取出最小的元素34,将34同无序序列第一个元素交换,此时产生含四个个元素的有序序列,无序序列减一


结果:{8,12,19,34}   {57}


6.最后一个元素肯定是最大元素,无序排序直接生产一个有序的序列


结果:{8,12,19,34,57}
public class Array {
    public static void main(String[] args) {
        int[] arr = {12,8,34,19,57};
        System.out.println("选择排序前");
        printArray(arr);//遍历数组
        System.out.println("选择排序后");
        selectSort(arr);//进行选择排序
        printArray(arr);//遍历数组
    }
    public  static  void selectSort(int[] arr){
        for(int x = 0;x< arr.length-1;x++){
            for(int y = x +1; y<arr.length;y++ ){
                if(arr[y] < arr[x]){
                    int temp = arr[x];
                    arr[x] = arr[y];
                    arr[y] = temp;
                }
            }
        }
    }
    //数组遍历方法
    public static void printArray(int[] arr){
        System.out.print("{");
        for (int i = 0; i <arr.length ; i++) {
            if(i == arr.length-1 ){
                System.out.println(arr[i]+"}");
            }else{
                System.out.print(arr[i]+", ");
            }
        }
    }
}

核心代码

for(int x = 0 ; x < arr.length-1; x ++){
    for(int y = x + 1;  y< arr.length ; y ++){
        //判断
        if(arr[y] < arr[x]){
            int temp = arr[x] ;
            arr[x] = arr[y] ;
            arr[y] = temp ;
        }
    } 
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值