0

我对带有附加条件的测试排序字符串有疑问。

表包含一个包含一些字符串的列。字符串可以按字母顺序排序。但是还有其他条件,以符号“[”开头的行的优先级低于以数字开头的行。

首先,我不懂算法。其次,我不知道如何测试,但主要是我应该使用用于排序的算法(但如果算法包含不正确的实现,所以测试没有发现问题)

4

2 回答 2

2

困难的部分已经完成:实现比较算法。要实际测试它,只需以任意顺序创建一些数据集,其中包含以 a 开头的[字符串和以数字开头的字符串,然后调用您的排序算法,并检查字符串是否符合预期的顺序:

List<String> toSort = Arrays.asList(new String[] {"[123", "1234", "[234", "0123"});
Collections.sort(toSort, new YourComparator());
assertEquals(Arrays.asList("0123", "1234", "[123", "[234"), toSort);
于 2013-05-18T09:54:49.933 回答
1

编写一个实现所有条件规则的自定义比较器并检查是否满足

MyCustomComparator c = new MyCustomComparator();

for(int i=0; i < tab.size()-1; i++){
    if(!c.compare(tab[i], tab[i+1])){
        throw new Exception("Not sorted");
    }
} 

tab排序字符串的集合在哪里。

编辑:这当然假设条件规则并不矛盾,例如a < b && b < c && c < a不会发生这样的情况。

于 2013-05-18T09:57:43.457 回答