排序算法(三):选择排序

来源:互联网 发布:mac怎么修改登录密码 编辑:程序博客网 时间:2024/06/04 19:54

定义:

假设有n个记录的序列,由最左边开始排序,每次排序都是在n-i+1个元素中选出最小的记录,与第i个元素进行交换。

特点:

每次排序只会发生一次数据交换。

时间复杂度:最好是0,最坏是O(n^2)


实现:

public class Selection {    public void sort(int[] arr){        int min=0;        for(int i=0;i<arr.length;i++){            min=i;            for(int j=i+1;j<arr.length;j++){                if(arr[j]<arr[min]){                    min=j;                }            }            if(min != i){                SortUtils.swap(arr,i,min);            }            SortUtils.print(arr);        }    }    public static void main(String[] args){        int[] array=SortUtils.getArray();        Selection selection=new Selection();        selection.sort(array);    }}


0 0
原创粉丝点击