我的作业需要使用各种排序方法,特别是冒泡排序,插入排序,快速排序和堆排序。我们被分配编写代码来对提供给我们的数据集执行每种排序。我已经编写了每种类型的代码没有问题,但我的问题与我们任务的第二部分有关。我们被要求找到我们应该测试的可能条件,以验证我们的代码在输入数据的所有情况下都能正常工作......我很遗憾该怎么办,因为我只能想到我们要处理的两个案例:
1)数据未排序
2)数据已经排序
我能想到的唯一条件是被测数据的大小以及它是如何“未分类”的。我只是想错误的方式或者是什么?
注意:我正在使用C ++,尽管我认为排序背后的方法在所有语言中是相同的并不重要
答案 0 :(得分:0)
程序员网站中有一个question。
我想最好的答案适用于这个问题。
我同意Jongware。
我有一些脚本来生成测试数据
random.awk - 随机数据
tim.awk:n-2,n-1,n-4,n-3,.....,2,3,0,1 - 几乎颠倒了
middle.pl:5,3,1,2,4 - 中间枢轴快速杀手杀手(PERL脚本)
median3.awk:n-1,0,1,2,...,n-2 - 中位数为3的快速杀手锏
valley.awk:n-1,n-3,...,4,2,0,1,3,...,n-4,n-2 - 大多数快速排序的坏情况
n111.awk:n,1,1,1,...,1,1,首先是大的
n11n.awk:n,1,1,1,...,1,n - 第一个和最后一个是大的
n1n1.awk:n,1,n,1,...,n,1 - 之字形
nn11.awk:n,...,n,1,...,1 - 很少
nnnn.awk:n,n,...,n - 相同的
其他n * .awk - github中的awk脚本。
答案 1 :(得分:0)
您希望找到的是您的实施是否存在缺陷。通常你会使用这些条件创建单元测试...