排序——选择排序小练习(二)

<big>版权声明:本文为 Codeagles 原创文章,可以随意转载,但必须在明确位置注明出处!!!</big>

在上一个《排序——选择排序小练习(一)》中,我们是手动建立一个数组进行传值,那么这个第二篇是通过随机法创建测试用例,毕竟随机数更具有说服力,顺便来复习一下随机数用法吧。

package selectsort;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;

/**
 * 
 * 2017年2月12日 下午10:12:00 author:codeagles Todo:O(n^2)的排序算法
 */
public class SelectSort {

    // 改进版 泛型模板
    public <E extends Comparable<E>> E[] sortSelectAdvance(E[] a, int n) {
        for (int i = 0; i < a.length; i++) {
            int minIndex = i;
            for (int j = i + 1; j < a.length; j++) {
                if ((Integer) a[j] < (Integer) a[minIndex]) {
                    minIndex = j;
                }

            }
            E tem = a[i];
            a[i] = a[minIndex];
            a[minIndex] = tem;
        }

        return a;

    }

        //随机生成数组
    @SuppressWarnings("unchecked")
    public static <E extends Comparable<E>> E[] randNumber(int n, int rangeL,
            int rangeR) {
        if (rangeL >= rangeR) {
            System.out.println("不成立");
            return null;
        }
        Integer[] array =new Integer[n];
                //用当前时间作为随机数种子
        Random r =new Random(System.currentTimeMillis());
        
        for (int i = 0; i < n; i++) {
                        //设置偏移量并且都要正整数
            array[i]=(int) (Math.abs(r.nextInt())%(rangeR-rangeL+1)+rangeL);
        }
        return (E[]) array;
    }

    public static void main(String[] args) {
        Integer arr1[] = { 1, 34, 2, 5, 4, 6, 7, 9 };
        Integer arr[] = randNumber(10,2,12);
        SelectSort ss = new SelectSort();
        //
        Integer[] b = ss.sortSelectAdvance(arr, arr.length);
        for (int i = 0; i < b.length; i++) {
            System.out.println(b[i]);
        }
    }

}
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 180,476评论 25赞 708
  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 5,347评论 0赞 52
  • 概述:排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    每天刷两次牙阅读 3,877评论 0赞 15
  • 2017年8月14日 晴 嘀嘀,嘀嘀。黑暗中摸索着拿起手机。 显示屏发出惨白的光,06:01,距离闹钟响起还有一个...
    花犯阅读 381评论 0赞 0
  • 乔治是第十代吹玻璃工艺传人,也是一位传承了这项具有悠久历史工艺的艺术家。他的公司制造酒杯。他与他的员工们都深信,每...
    叭哒阅读 603评论 10赞 2

友情链接更多精彩内容