下面是选择排序的程序,将数组中的数据按从小到大的顺序进行排序。int i, jk, t.n; n=a.length; for (i-0; ¡<n-1; i++) { k=i; for (j-it1; j<n; j++) { if (alif<a[k]) { k=i: } if (il=k) Farkl; ak=alil; alj-t; 要求: ①计算此程序段的圈复杂度。 ② 用基本路径测试法给出测试路径。 ③ 为各测试路径设计测试用例。
时间: 2023-12-02 17:02:31 浏览: 248
各种排序的程序
①此程序段的圈复杂度为n(n-1)/2,即O(n^2)。
②基本路径测试法基于程序的控制流图,找出所有可能的独立路径,并为每个独立路径设计测试用例。以下是此程序段的控制流图和基本路径:
控制流图:
```
---------(1)----------
| for i=0 to n-1
| / \
| ----(2)------ (6)
| | k=i; | |
| | for j=i+1|to n |
| | if a[j] |< a[k]|
| | k=j; | |
| | swap(a[i], a[k]) |
| ------------ |
| return
-----------------------
```
基本路径:
1. 1-2-6
2. 1-2-3-6
3. 1-2-3-4-6
4. 1-2-3-5-6
③为每个基本路径设计测试用例:
1. 最好情况:输入数组已经有序,例如:[1,2,3,4,5]
2. 最坏情况:输入数组逆序,例如:[5,4,3,2,1]
3. 覆盖第3条基本路径的测试用例:[3,2,1,4,5]
4. 覆盖第4条基本路径的测试用例:[1,3,2,5,4]
阅读全文