我觉得我想乱搞并试图设计一些排序算法,看看像是泡泡排序,看看我是否可以快速排序工作,但我遇到的第一个问题是我应该如何存储和处理我的数据?它应该从哪里来?
我应该只声明一个包含几千个索引字段的数组,并手动输入并随机化我的数据吗?或者我应该创建一个堆栈?
如何获取这些随机数?当然,我不会产生数以千计的手动输入它们。
为了简单起见,我想我只会坚持使用整数。
答案 0 :(得分:1)
如果您的问题只是获取测试用例,您可以使用HackerRank编写算法,并且他们有很多测试用例。以下是所有排序挑战的链接:
https://www.hackerrank.com/domains/algorithms/arrays-and-sorting
答案 1 :(得分:0)
我不确定你在这里问什么。你能具体一点吗?如果问题是如何生成排序输入,那么你绝对可以使用随机化。如果您正在寻找学习排序的好地方,我建议您介绍Cormen的算法。
答案 2 :(得分:0)
https://www.topcoder.com/community/data-science/data-science-tutorials/sorting/
我喜欢使用上面的topcoder链接作为排序的参考。他们有所需的算法,并且免费提供。你不应该使用教科书。
对于数据输入,测试用例可以通过hackerrank获得,如另一个答案所述,或者你可以编写一个函数来随机生成数字。
例如,如果您使用的是Java,则可以使用Random:
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);
}
在这里,我生成一个1000项数组,其随机整数介于0和100之间。
答案 3 :(得分:0)
好吧我也许应该在发布之前再研究一下,因为事实证明在c#framework中有一个现成的生成随机数的方法。所以这只是创建一个X数为空格并运行一个循环X次,以便在该数组索引中插入一个随机数。
现在我必须弄清楚如何编码比较