证明题只要你能说服人, 不管用什么方法都行, 你动脑筋想想:
外层第一次循环,内层a[Select] > a[Traverse]最多比较N-1次, 假设每次都是前一个数大, 那么Select赋值次数为最多, 就是N-1次(不可能比这个数更大了),
外层第二次循环,内层a[Select] > a[Traverse]最多比较N-4次, 但是不是每次都是前一个数大,因为肯定最大的数在其中 , 也就是至少存在一次a[Select] <= a[Traverse], 那么Select赋值次数最多是N-3次(不可能比这个数更大了),
外层第三次循环,内层a[Select] > a[Traverse]最多比较N-3次, 但是不是每次都是前一个数大,因为肯定有两个最大的数在其中 , 也就是至少存在两次a[Select] <= a[Traverse], 那么Select赋值次数最多是N-5次(不可能比这个数更大了),
.....
Select总赋值次数N-1 +N-3 + N-5....., 这还不明显吗
外层第一次循环,内层a[Select] > a[Traverse]最多比较N-1次, 假设每次都是前一个数大, 那么Select赋值次数为最多, 就是N-1次(不可能比这个数更大了),
外层第二次循环,内层a[Select] > a[Traverse]最多比较N-4次, 但是不是每次都是前一个数大,因为肯定最大的数在其中 , 也就是至少存在一次a[Select] <= a[Traverse], 那么Select赋值次数最多是N-3次(不可能比这个数更大了),
外层第三次循环,内层a[Select] > a[Traverse]最多比较N-3次, 但是不是每次都是前一个数大,因为肯定有两个最大的数在其中 , 也就是至少存在两次a[Select] <= a[Traverse], 那么Select赋值次数最多是N-5次(不可能比这个数更大了),
.....
Select总赋值次数N-1 +N-3 + N-5....., 这还不明显吗
[此贴子已经被作者于2025-12-2 10:11编辑过]






