2016-11-29 100 views
0

我决定试着设计一些排序算法,看看像气泡排序,看看我能否快速排序工作,但我面临的第一个问题是我应该如何存储和解决我的数据?它从哪里来?排序练习,从哪里开始?

我是否应该声明一个包含几千个索引字段的数组,并手动输入并随机化我的数据?或者我应该创建一个堆栈?

我该如何去获得这些随机数字?当然,我不一定要生成数以千计的手工输入。

为了简单起见,我想我只是要坚持整数。

回答

0

我不知道你在这里问什么。你能具体吗?如果问题是如何生成输入来排序,那么你肯定可以使用随机化。如果你正在寻找一个排序的好地方,我建议Cormen的算法介绍。

0

https://www.topcoder.com/community/data-science/data-science-tutorials/sorting/

我喜欢用上述TopCoder公司联系,以排序的参考。他们拥有所需的算法,并且免费提供。你不应该需要使用教科书。

至于数据输入,测试用例可以通过hackerrank得到,如另一个答案中所述,或者你可以编写一个函数来随机生成数字。

例如,如果您使用的是Java,您可以使用随机:

import java.util.Random; 

public static int randInt(int min, int max) { 

    Random randNum; 
    int randomNum = randNum.nextInt((max - min) + 1) + min; 

    return randomNum; 
} 

然后,您可以使用这样的函数,以每次生成您的随机数一个在循环中放入数组排序。

例如:

int toSort = 1000; 
int[] arrayToSort = new int[toSort]; 

for(int numsToSort = toSort; numsToSort > 0; numsToSort--){ 
    arrayToSort[numsToSort] = randInt(0, 100); 
} 

在这里,我产生0和100

+0

如果您有任何问题发表意见,我会很乐意帮助或在我的回答对扩大 – LucyMarieJ

0

之间的1000项阵列随机整数确定好,我也许应该研究一些更前发布,因为它事实上有一个现成的方法用于在c#框架中生成随机数。因此,它只是简单地创建一个具有X个空格的数组,并运行一个循环X次,以将随机数插入该数组索引。

现在我必须弄清楚如何编写比较