直接排序的原理与算法java

一:基本思想
就是讲指定排序位置与其他数组元素进行相比,满足条件就交换元素,注意这里与冒泡排序(看我上一篇文章)的区别,不是交换相邻的元素,而是把满足条件的元素与指定的元素交换位置,这样排序好的位置逐渐扩大,最后整个数组都成为已经拍好序的格式
例如:坤坤小学生,从包含数字1~10的乱序的数字堆中分别选择合适的数字,组成一个1到10的排序,而坤坤首先从数字堆中选出1,放在第一位,然后选择出2放在第二位,以此类推,直到找到数字9放在数字8后面,最后的10就不用选择了。
与冒泡排序的区就是交换的次数少了,速度会快很多。

二:算法实例
每一趟从待排序的数据元素中选出最小的,顺序的放在已经排好的数列位置上。直到全部排完。
在这里插入图片描述
三:算法的实现

package study;

public class SelectSort {

	public static void main(String[] args) {
		int array[]={56,54,23,52,6,24};//创建一个数组,该数组是乱序的
		//创建对象
		SelectSort sorter=new SelectSort();
		//使用对象调动用排序的方法
		sorter.sort(array);
	}

	private void sort(int[] array) {
		int index;
		
		for(int i=1;i<array.length;i++){
			index=0;
			for(int j=0;j<array.length-i;j++){
				if(array[j]>array[index]){
					index=j;
					
				}
				
			}
			
			//交换在位置array。length-i和index上的两个数
			int temp=array[array.length -i];  //将第一个元素放置临时变量中
			array[array.length -i]=array[index];//将第二个元素放置第一个元素中
			array[index]=temp;//将临时变量就是第一个元素变量放置第三个中
			
		}
		
		showArray(array);//输出
		
	}

	private void showArray(int[] array) {
		for(int i:array){                   //遍历数组
			System.out.print(" < "+i);    //输出每一个数组元素值
		}
		System.out.println();
		
	}

}

``
结果如下:

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值