求解各位大神,能详细解答下,不只是答案,谢谢了。
考虑下面的算法:
输入: n个元素的数组A
输出:按递增顺序排序的数组A
- void bubblesort(int A[],int n)
- {
- int j,i,sorted;
- i=sorted=0;
- while(i<n-1 && !sorted) {
- sorted=1;
- for(j=n-1;j>i;j--) {
- if(A[j]<A[j-1]) {
- temp=A[j];
- A[j]=A[j-1];
- A[j-1]=temp;
- sorted=0;
- }
- }
- i=i+1;
- }
- }
(1) 算法所执行的元素比较次数最少是多少次?什么时候达到最少?
(2) 算法所执行的元素比较次数最多是多少次?什么时候达到最多?
(3) 算法所执行的元素赋值次数最少是多少次?什么时候达到最少?
(4) 算法所执行的元素赋值次数最多是多少次?什么时候达到最多?
(5) 用О、和Ω记号表示算法的运行时间。
(6) 可以用Θ记号来表示算法的运行时间吗?请说明。