java 选择排序

本文介绍了一种通过冒泡思想优化的选择排序算法,展示了如何在Java中利用外部和内部循环控制元素交换,提高排序效率。通过实例演示了如何在数组中找到最小元素并逐步调整位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java 选择排序

import java.util.Arrays;
/**
 * 选择排序 优化冒泡
 * 外层 n-1 内层 i+1
 * @author 
 *
 */
public class Test1 {
	public static void main(String[] args) {
		int [] arr = {21,324,354,6213,1354365,12213,342,12};
		int index = 0;
		//外层循环控制轮数,此处表示执行 (arr.length-1) 轮
		for (int i = 0; i < arr.length-1; i++) {
			//单独定义一个变量,用来记录下标的变化
			index = i;
			//内层循环控制每轮比较的次数
			for (int j = i+1; j < arr.length; j++) {
				//判断大小,满足条件 进行下标的交换
				if(arr[index] > arr[j]) {
					index = j;
				}
			}
			//本轮比较完毕,此时下标为index的数组就是自己需要的值,然后交换
			if (arr[index] != arr[i]) {
				int c = arr[index];
				arr[index] = arr[i];
				arr[i] = c;
			}
		}
		//利用 Arrays.toString(); 打印排序完毕的数组
		System.out.println("升序:"+Arrays.toString(arr));
	}
}

选择排序使用一个元素依次与其他元素进行比较,遇到需要交换位置的元素,不立即交换位置(利用变量记录下标)

拿着需要换位置的元素,继续往后比较,等待一轮比较完成,利用下标交换一次位置即可

每一轮可以固定一个元素的位置

结果截图:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值