1.3.3 算法效率的衡量方法 例1.2 对 n 个整数的序列进行选择排序。其中序列的"长度" n 为问题的规模。 算法 1.2 void select_sort(int a[], int n) { // 将 a 中整数序列重新排列成自小至大有序的整数序列。 for ( i = 0; i< n-1; ++i ) { j = i; for ( k = i+1; k < n; ++k ) if (a[k] < a[j] ) j = k; if ( j != i ) { w = a[j]; a[j] = a[i]; a[i] = w;} } // select_sort 算法的时间复杂度为O (n2) 。 |
算法中的控制结构是两重循环,所以基本操作是在内层循环中的"比较",它的重复执行次数是 对时间复杂度而言,只需要取最高项,并忽略常数系数。 |