
本文共 5639 字,大约阅读时间需要 18 分钟。
���������������������������������������������������������������������������
������������������������
������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
������������
#includeint main() { int List[] = {49, 38, 65, 97, 76, 13, 27, 30, 55, 4}; int i, t, j, length; length = sizeof(List) / sizeof(int); for (i = 1; i < length; ++i) { if (List[i] < List[i-1]) { int temp = List[i]; for (j = i; j-- > 0; --j) { if (List[j] > temp) { List[j + 1] = List[j]; } else { List[j + 1] = temp; temp = List[j]; } } List[j + 1] = temp; } } return 0;}
������������
���������������
������
- ������������������������������O(n)���������������O(n��)���
- ������������������O(1)������������������������������
������
- ������������������������������������������������������������������������������������
������������������������
������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������O(n��)������������������������������������������������������
������������
������������
#includeint main() { int List[] = {0, 49, 38, 65, 97, 76, 13, 27, 30, 55, 4}; int i, j, low, high, mid; int t, length; length = sizeof(List) / sizeof(int); printf("%d\n", length); for (i = 2; i < length; ++i) { // ������������������������ int temp = List[i]; low = 0; high = mid; mid = (low + high) / 2; while (low <= high) { if (List[0] < List[mid]) { // ������������������������������������������������������ low = mid + 1; } else { // ������������������������������������������ high = mid - 1; } } // ������������������������������������������������������ for (j = i-1; j > high; --j) { List[j+1] = List[j]; } List[high+1] = temp; mid = (low + high) / 2; Radio until������������������������ } return 0;}
���������������
������
- ������������������������������������������������������������������������
������
- ������������������������O(1)���
- ������������������������������������O(n��)���
���������������������Shell Sort���
���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
������������
������������
#includeint main() { int i, j, gap, t, length; int List[] = {49, 38, 65, 97, 76, 13, 27, 30, 55, 4}; length = sizeof(List) / sizeof(int); gap = length; while (gap <= 1) { for (i = 0; i < gap; ++i) { for (j = i + gap; j < length; j += gap) { if (List[j] < List[j - gap]) { int temp = List[j]; int k = j - gap; while (k >= 0 && List[k] > temp) { List[k + gap] = List[k]; k -= gap; } List[k + gap] = temp; } } } gap /= 2; }}
���������������
������
- ������������������������������O(n log n)���
- ������������������O(1)���
������
- ���������������O(n��)������������������������������
������
������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������/���������������������������
发表评论
最新留言
关于作者
