数据结构之选择排序

已经学习Java接近三年的cullinans,回头再看数据结构的一些知识,果然和刚学时不一样,今日记录下自己对这些知识的理解,以便自己不断重复更加深入的理解。
选择排序
package sort;

/**
 * @packagname:sort
 * @classname:ChooseSort
 * @date:2017/1/30
 * @author:cullinans
 * @des:选择排序
 * 选择排序思路:
 * 首先将第一个元素标记为最小的元素
 * 然后在从第二个元素起找到比第一个元素还小的元素并记录下标
 * 然后如果最小的元素的下标和第一个元素的下标不一样,则交换这两个元素。一轮循环结束。
 * 后面的元素依次类推,知道最后一个元素循环完毕。
 * 关键:选择排序,比较多次,但是只用一个引用记录最小的元素最后只交换一次。
 * 时间复杂度:o n的平方。
 */

public class ChooseSort<T> {

    public static  void sort(int[] sortarray){//传入数组
        int min;//标记变量
        for(int i=0;i<sortarray.length;i++){//循环数组
            min=i;//将第i个元素标记为最小元素
            for(int j=i+1;j<sortarray.length;j++){//循环i元素后面的元素
                if(sortarray[min]>sortarray[j]){//如果后面的元素有比最小元素还小的
                    min=j;//将这个元素的下标标记为最小的
                }
            }
            if(i!=min){//如果第i个元素和最小元素的下标不一致
              //则交换这两个元素的值。
                int temp;
                temp=sortarray[i];
                sortarray[i]=sortarray[min];
                sortarray[min]=temp;
            }
        }
    }

public static void main(String[] args){
        int[] a={3,7,2,4,9,5};
        sort(a);
        for(int i:a){
            System.out.println(i);
        }
    }
}
运行结果截图

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值