直接选择排序法(注意区分与冒泡排序的区别)

直接选择排序法通过对比指定位置与其他元素找出最大(小)值并交换,区别于冒泡排序的相邻元素交换。以示例array{7,8,6,5,9,3,1}说明,通过比较找到最大值并与末位交换,实现升序排列。具体实现过程包括多次比较和非相邻元素交换。" 124451127,10125493,Quagga-Zebra路由协议与NSM模块解析,"['网络协议', '路由技术', '网络管理']
摘要由CSDN通过智能技术生成

直接选择排序法是将指定排序位置与其他数组元素分别对比,如果满足条件就交换元素,注意区分冒泡排序,他不是交换相邻的,而是把满足条件的与指定位置的交换。

比如array{7,8,6,5,9,3,1},指定把最大的放在最后一位,先从第一位开始比较,8比7大,则下一次就是6与8比较(因为6比8小),再5与8比较,以此类推

for(int j=1;j<a.length;j++){   
			int index=0;
			for(int i=1;i<=a.length-j;i++){
				if(a[i]>a[index]){
					index=i;
					/*
					 * 交换下一个要比较的值,但不是交换两个值的内容
					 * 比如a2与a1比较,现在换成a3与a2比较,而不是交换a2和a1的值				 
					 */
			
			}
							
	}

到最后一位再交换位置

for(int j=1;j<a.length;j++){   
			int index=0;
			for(int i=1;i<=a.length-j;i++){
				if(a[i]>a[index]){
					index=i;
					/*
					 * 交换下一个要比较的值,但不是交换两个值的内容
					 * 比如a2与a1比较,现在换成a3与a2比较,而不是交换a2和a1的值				 
					 */
			
			}
							
	}
			/*
			 * 不能放在第二个for里面,因为要到最后再交换位置
			 */
			temp&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值