Java日常学习012(算法之选择排序)

学习目标:

选择排序算法:
* 每一轮从待排序的数据元素中选出最小(或最大)的一个元素
* 顺序放到已排好序的数列的最后,直到所有的元素排完
* 选择排序是不稳定的排序

学习内容:

package com.qf.lzp;

public class Algorithm02 {
/** 选择排序算法:
* 每一轮从待排序的数据元素中选出最小(或最大)的一个元素
* 顺序放到已排好序的数列的最后,直到所有的元素排完
* 选择排序是不稳定的排序
*
* 如:3 2 5 6 4 8 7 1 3 以最小为例
* * 第一轮后 1 3 2 5 6 4 8 7 3 第一轮比较8次
* * 第二轮后 1 2 3 5 6 4 8 7 3 第二轮比较7次
* * 。。。。。。
* * 第八轮后 1 2 3 3 4 5 6 7 8 第八轮比较1次
*/
public static void main(String[] args) {
int[] nums1={3,2,5,6,4,8,7,1,3};
int[] nums2={9,8,7,6,5,4,3,2,1};
SelectSort(nums1);
SelectSort(nums2);
}
public static void SelectSort(int[] A){ //选择排序算法
//外循环控制轮次
for(int i=0;i<A.length-1;i++){
int minIndex=i;
//内循环进行比较
for(int j=i+1;j<A.length;j++){
if(A[minIndex]>A[j]){
minIndex=j;
}
}
if(i!=minIndex){ //相对于冒泡排序,一轮只进行一次换位
A[i]=A[minIndex]+A[i];
A[minIndex]=A[i]-A[minIndex];
A[i]=A[i]-A[minIndex];
}
System.out.print(“第”+(i+1)+“轮后,数组当前的顺序为:”);
for(int k=0;k<A.length;k++){
System.out.print(A[k]+" “);
}
System.out.println();
}
System.out.println(”------------");
}

}
运行结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值