标签:
1.冒泡排序
void bubblesort(int num[],const int len) { if (len <= 1) return; bool sign = false; int i, j, tmp; for ( i = 0; i < len - 1; i++) { sign = false; for ( j = len - 1; j > i; j--) { if (num[j] < num[j - 1]) { sign = true; //本轮循环存在排序操作 tmp = num[j - 1]; num[j - 1] = num[j]; num[j] = tmp; } } if (!sign) break; //本轮循环排序已经结束 } }
最好时间复杂度为O(n),最差和平均时间复杂度均为O(n^2),稳定排序。
2.直接插入排序
void insertsort(int num[],const int len) { if (len <= 1) return; int i, j, temp; for ( i = 1; i < len; i++) { if (num[i] < num[i - 1]) { temp = num[i]; for (j = i - 1; j >= 0 && num[j] > temp; j--) { num[j + 1] = num[j]; } num[j + 1] = temp; } } }
引用自:http://www.cnblogs.com/heyuquan/p/insert-sort.html中解释
设数组为a[0…n]。
时间复杂度:最好O(n),最差、平均都是O(n)。
标签:
原文地址:http://www.cnblogs.com/jason1990/p/4678171.html