测试排序算法工具类

为了方便测试排序算法,下面展示了一些工具类,在之后的写的排序算法中会用到这些类。

一、随机数组生成类

    

package sort.util;

import java.util.*;

public class RandomArrayGenerator {

    private static int[] array;

    //校验number是否在数组中
    private static boolean isInArray(int number) {
        boolean isInArray = false;
        for(int a : array) {
            if(a == number) {
                isInArray = true;
            }
        }
        return isInArray;
    }

    //生成长度为length、值域为1 ~ maxElement的随机数组
    public static int[] getRandomArray(int maxElement , int length) {
        array = new int[length];
        Random random = new Random();
        int index = 0;
        while( index < length) {
            int randomNumber = random.nextInt(maxElement) + 1;           //random.nextInt()返回0 ~ maxElement之间的数
            if(!isInArray(randomNumber)) {                               //但不包括maxElement
                array[index] = randomNumber;
                index ++;
            }
        }
        return array;
    }

}

二、打印数组类

package sort.util;

public class DisplayArray {
    //显示数组中的所有元素
    public static void display(int[] array) {
        for(int a : array) {
            System.out.print(a + " ");
        }
        System.out.println("");
    }
}

三、排序类接口

package sort.util;

public interface ISort {

    void sort(int[] array);
}

四、测试类

package sort.util;

public class SortTestHelper {

    //调用ISort接口的排序方法对array进行排序测试
    public static void test(ISort iSort , int[] array) {

        System.out.print("排序前:");
        DisplayArray.display(array);

        iSort.sort(array);

        System.out.print("排序后:");
        DisplayArray.display(array);
    }
}

原文地址:https://www.cnblogs.com/wanghang-learning/p/9095861.html

时间: 2024-08-06 22:20:43

测试排序算法工具类的相关文章

排序算法工具类

/** * 排序算法工具类 */ public class GeneratedArray { /** * * 生成随机长度数组[min,max) * * @param min 最小值 * @param max 最大值 * @param num * @return */ public static int[] randomGeneratedArray(int min, int max, int num) { //断言判断 assert max>min:"数组生成范围指定有误"; i

非对称加密——RSA算法工具类

关于RSA算法的介绍网上一大堆,一句话就是牛B. package com.demo; import org.springframework.util.StringUtils; import javax.crypto.Cipher; import java.security.*; import java.security.interfaces.RSAPrivateKey; import java.security.interfaces.RSAPublicKey; import java.secur

核心算法工具类

* <h1>轨迹平滑所需要的工具方法</h1> Date: 2016-10-27 Created by mxdl */public class TrackMoveUtil { private static double DISTANCE = 0.0001; /** * 根据两点算斜率 */ public static double getSlope(LatLng fromPoint, LatLng toPoint) { if (fromPoint == null || toPoin

排序算法整理:冒泡排序、堆排序、插入排序、归并操作、快速排序、希尔排序、选择排序

SortUtils.java package prms.utils.sort; import java.util.Arrays; /** * @ClassName: SortUtils * @Description: <p> 排序算法 工具类 </p> * @author edgar * @email [[email protected]] * @version V 1.0 * @date 2017-3-28 15:35:12 */ public class SortUtils {

详谈排序算法之插入类排序(两种思路实现希尔排序)

1. 排序( sorting) 的功能是将一个数据元素的任意序列,重新排列成一个按关键字有序的序列.其确切的定义为: 假设有n个数据元素的序列{R1 , R2 , - , Rn},其相应关键字的序列是{K1 , K2 , - , Kn} ,通过排序要求找出下标 1 , 2 , - , n的一种排列p1 , p2 , - , pn,使得相应关键字满足如下的非递减(或非递增)关系Kp1 ≤ Kp2 ≤ - ≤ Kpn这样,就得到一个按关键字有序的纪录序列{ Rp1 , Rp2 , - , Rpn }

轻松把玩HttpClient之封装HttpClient工具类(四),单线程调用及多线程批量调用测试

本文主要来分享一下该工具类的测试结果.工具类的整体源码不再单独分享,源码基本上都已经在文章中了.开始我们的测试. 单线程调用测试: public static void testOne() throws HttpProcessException{ System.out.println("--------简单方式调用(默认post)--------"); String url = "http://tool.oschina.net/"; //简单调用 String re

七大常见排序算法总结

文档版本 开发工具 测试平台 工程名字 日期 作者 备注 V1.0 2016.04.06 lutianfei none V1.1 2016.07.16 lutianfei 增加了归并排序说明 V2.0 2016.07.19 lutianfei 完善了排序算法的总结 排序另一种分法 外排序:需要在内外存之间多次交换数据才能进行 内排序: 插入类排序 直接插入排序 希尔排序 选择类排序 简单选择排序 堆排序 交换类排序 冒泡排序 快速排序 归并类排序 归并排序 排序方法 平均情况 最好情况 最坏情况

数据结构与算法-排序算法-partial

前言 都什么时代了,还写排序算法的总结? 原因有二.一是别人的精彩永远是别人的,你只有鼓掌的份儿:有些事情实际动手去做了才会有所体会. 二是排序算法是一类基础类的算法,不光是IT从业者真正入门的门槛,也是一些高级算法的关键部分或算法评估的benchmark. 计划说明的算法内容有哪些?  算法的思想.Java代码实现和平均算法复杂度.算法运行完整示例. 参考文献有哪些? wiki[EB/OL] Shaffer C. A. Data Structure and Algorithm Analysis

DotNet常用排序算法总结

数据结构和算法对一个程序来说是至关重要的,现在介绍一下几种算法,在项目中较为常用的算法有:冒泡排序,简单选择排序,直接插入排序,希尔排序,堆排序,归并排序,快速排序等7中算法. 现在介绍选择排序算法,希尔排序算法,快速排序算法. (1).选择排序算法:通过n-i次关键字间的比较,从n-i+1个记录中选择出关键字最小的记录,并和第i(1大于等于i小于等于n)个记录交换. (2).希尔排序:先取一个小于n的整数d1作为第一个增量,把文件的全部记录分组.所有距离为d1的倍数的记录放在同一个组中.先在各