Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <time.h>
- int main()
- {
- int arr1[10] = {6, 1, 9, 5, 0, 3, 7, 4, 2, 8};
- int i, j, tmp, count;
- clock_t start, end;
- //Пузырёк
- count = 0;
- printf("Bubble: \n");
- start = clock();
- for(i = 0; i < 10; i++)
- {
- for (j = i; j < 10; j++)
- {
- if (arr1[j] > arr1[i])
- {
- tmp = arr1[i];
- arr1[i] = arr1[j];
- arr1[j] = tmp;
- count++;
- }
- }
- printf("Stage %d:", i);
- for (j = 0; j < 10; j++)
- {
- printf(" %d", arr1[j]);
- }
- printf("\n");
- }
- end = clock();
- printf("Comparision count: %d\n", count);
- printf("Time: %lf seconds\n", (double)(end - start) / CLOCKS_PER_SEC);
- //Бинарные включения
- printf("Binary: \n");
- int arr2[10] = { 6, 1, 9, 5, 0, 3, 7, 4, 2, 8 };
- int left, right, middle, cur;
- count = 0;
- printf("Stage 0:");
- for (j = 0; j < 10; j++)
- {
- printf(" %d", arr2[j]);
- }
- printf("\n");
- start = clock();
- for (i = 1; i < 10; i++)
- {
- if (arr2[i - 1] < arr2[i])
- {
- count++;
- cur = arr2[i]; //Текущий элемент
- left = i - 1;
- right = 0;
- do
- {
- middle = (left + right) / 2;
- count++;
- if (arr2[middle] > cur)
- {
- right = middle + 1;
- }
- else
- {
- left = middle - 1;
- }
- } while (left >= right);
- for (j = i - 1; j >= right; j--) //Сдвиг массива
- {
- arr2[j + 1] = arr2[j];
- }
- arr2[right] = cur;
- }
- printf("Stage %d:", i);
- for (j = 0; j < 10; j++)
- {
- printf(" %d", arr2[j]);
- }
- printf("\n");
- }
- end = clock();
- printf("Comparision count: %d\n", count);
- printf("Time: %lf seconds\n", (double)(end - start) / CLOCKS_PER_SEC);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement