选择排序 - 二元选择排序

本文介绍了二元选择排序的实现过程,并针对特殊情况进行了详细说明。作者在调试过程中发现现有资源存在不足,故分享了自己的代码实现,以确保能正确处理各种情况。建议测试时使用多样例以确保算法正确性。

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

在csdn上搜了好多篇关于二元选择排序的代码发现居然没有一个能完美通过所有样例的…于是只好自己捣鼓了半天,确实比我原以为的麻烦多了,要是竞赛题的话debug的时间估计占大头…debug了好久总算好像没有问题出现(也说不定还有,欢迎提供样例)

思路就不说了,其他文章都说的很好了,我简单说明一下需要处理的特殊情况(一定要多搞一些奇怪的样例来试啊):

  1. 最大值刚好与最小值交换时记得只交换一次
  2. 最大值刚好与最左需要排列的位置交换,记得先换最大值(相反同理)
  3. 有一个最值不需要交换

附代码:

// 二元选择排序
	public static int[] selectSort2(int[] num) {
   
   
		int temp;
		for (int i = 0; i < num.length / 2; i++) {
   
   
			int min = i, max = i;
			for (int j = i + 1; j < num.length - i; j++) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值