选择排序的一种暴力解法

 选择排序示意图:

        如果想把数组的元素从小到大排序,首先需要以索引为0处的元素为基准,增大索引值进行搜索,寻找到数组中最小元素,之后两个元素进行交换,再以索引为1处的元素为基准,增大索引值搜索,找到索引值大于1中的最小元素,再进行交换,以此类推,最后排列好所有的元素。

现在提供选择排序的一种暴力求解法,时间复杂度O(n^2):

public class Choose {public static void main(String[] args) {int[] choose = new int[]{4,6,8,9,1};    //假设一个数组for(int i = 0;i < choose.length - 1;i++) {    //外部需要排(length - 1)次int num = choose[i]; //将本次需要交换的初始值赋予num,保证后续地址值不会改变int in = i;    //声明一个变量,用以存储初始索引,且保证每次循环前都是新的索引值for(int j = i + 1;j < choose.length;j++) {if(num > choose[j]) {in = j;             //保留索引值num = choose[j];    //保留最小值,来和j++后的值进行比较}}int temp = choose[i];choose[i] = choose[in];choose[in] = temp;}for (int i = 0; i < choose.length; i++) {System.out.print(choose[i] + "\t");}}}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部