2014-12-07 36 views
0

我有一個任務需要使用各種排序方法,特別是冒泡排序,插入排序,快速排序和堆排序。我們被分配編寫代碼來執行每種給予我們的數據集。我爲每種類型編寫了代碼都沒有問題,但我的問題與我們任務的第二部分有關。我們被要求找到可能的條件,我們應該測試,以驗證我們的代碼在所有輸入數據的情況下工作...我很遺憾要做什麼,因爲我只能想到兩個我們會處理的情況:測試排序方法

1)中的數據沒有排序

2)中的數據已經排序

我能想到的是被測試的數據的大小的唯一條件和如何「非排序」它是。我只是想着這個錯誤的方式或什麼?

注:我用C++的工作,雖然我不認爲它很重要是背後排序的方法是在所有語言

+0

注意:您忘記了合併排序(以及多種變體)。和基數排序。 – wildplasser 2014-12-07 23:56:51

+0

這些類別不在我們的任務範圍內。我們只需要擔心問題中的4種問題。 – Spitzform 2014-12-07 23:58:58

+0

數據可以反向排序。這對於一些算法來說是最壞的情況。 – usr2564301 2014-12-08 00:01:30

回答

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,n - 首先和最後是大的
n1n1.awk:N,1,N,1,...,N,1 - 曲折
nn11.awk:N,...,N,1,...,1 - 幾
nnnn.awk:N,N, ...,n - 相同
其他n * .awk - awk腳本github。數據在數據重複

  • 0
    • 空數據
    • 1值
    • 1值重複20次
    • 值的各種排列
    • 數據排序以相反的順序

    你正在尋找的是如果你的實現有缺陷。通常情況下,您可以使用這些條件創建單元測試...