美文网首页
排序——选择排序小练习(二)

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

作者: Codeagles | 来源:发表于2017-02-15 23:33 被阅读0次

<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]);
        }
    }

}

相关文章

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

    版权声明:本文为 Codeagles 原创文章,可以随意转载,但必须在明确位置注明出处!!! 在上一个《排序——选...

  • 排序——选择排序小练习(一)

    版权声明:本文为 Codeagles 原创文章,可以随意转载,但必须在明确位置注明出处!!! 最近在练习写写排序,...

  • Java实现常见的算法

    主要罗列了常见的选择排序,冒泡排序和快速排序,还有二分查找的算法。 选择排序 冒泡排序 快速排序 二分查找 注意二...

  • 排序算法

    冒泡排序 选择排序 插入排序二分插入排序希尔排序 堆排序 归并排序 快速排序 交换排序类:冒泡排序快速排序 选择排...

  • python排序方法

    一、冒泡排序 二、快速排序 三、选择排序

  • 排序算法

    一、冒泡排序 二、选择排序 三、快速排序

  • Java排序算法

    插入排序 直接插入排序 折半插入排序 交换排序 冒泡排序 快速排序 选择排序 简单选择排序 堆排序 其他排序 二路...

  • iOS算法

    排序方法 选择排序:直接选择排序、堆排序。 交换排序:冒泡排序、快速排序。 插入排序:直接插入排序、二分法插入排序...

  • Objective-C实现常用的排序算法

    一、冒泡排序: 二、选择排序: 三、快速排序: 四、插入排序:

  • Swift实现四种简单的排序算法

    一、冒泡排序 二、选择排序 三、插入排序 四、希尔排序

网友评论

      本文标题:排序——选择排序小练习(二)

      本文链接:https://www.haomeiwen.com/subject/kwdcwttx.html