选择排序

选择排序
大致思想就是:一组数据,我先选定第一个数是最小的,然后依次在除了第一个数以外的数据中遍历,找到比当前认定的最小值还要小的数,然后记录他的下标,待一次循环结束后,交换位置。

此时这组数据的第一个元素就是名副其实的最小的,然后换下一个,假定第二个元素是最小的,在重复上述操作,直到全部有序。

package sort;

/*
 * 选择排序
 */
public class selectSort
{
    private int [] array = { 9 , 3 , 4 , 2 , 6 , 8 , 5 } ;
    private int out ;//用来记录每次从哪开始(起点)
    private int in ;//用来来回遍历
    private int min ;//存放一次循环中找到的最小数字的下标
    private int temp ;//存放待交换的值

    public void sort ()
    {
        for ( out = 0 ; out < array.length ; ++ out )
        {
            min = out ;//每次循环的开始,先假定起点就是最小的数字,用它来和遍历中的数据作比较
            temp = array [min] ;

            //循环查找最小值,找到最小的就将其下标记住待循环结束,在交换
            for ( in = out + 1;  in < array.length ; ++ in )
            {
                if ( array [in] < array [min] )
                min = in ;
            }

            //交换,将循环中找到最小值放到起点,起点里存放的数放到最小值位置
            array [out] = array [min] ;
            array [min] = temp ;
        }
    }

    public void display ()
    {
        for ( int i = 0 ; i < array.length ; ++ i )
        {
            System.out.print ( array [i] + " " );
        }
        System.out.println ();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值