Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #include "SORTW.H"
- void SelectionSort(float* a, int n, int* n_cmp, int* n_move)
- {
- int i, j, nmin;
- for (i = 0; i < n - 1; i++)
- {
- nmin = i;
- for (j = i + 1; j < n; j++)
- {
- (*n_cmp)++;
- if (a[j] < a[nmin])
- nmin = j;
- }
- Swap(&a[nmin], &a[i]);
- (*n_move)++;
- }
- }
- void BSort1(float* a, int n, int* n_cmp, int* n_move)
- {
- int i, j;
- for (i = 0; i < n - 1; i++)
- for (j = 0; j < n - 1; j++)
- {
- (*n_cmp)++;
- if (a[j] > a[j + 1])
- {
- Swap(&a[j], &a[j + 1]);
- (*n_move)++;
- }
- }
- }
- void BSort2(float* a, int n, int* n_cmp, int* n_move)
- {
- int i, j;
- for (i = 0; i < n - 1; i++)
- for (j = 0; j < n - 1 - i; j++)
- {
- (*n_cmp)++;
- if (a[j] > a[j + 1])
- {
- Swap(&a[j], &a[j + 1]);
- (*n_move)++;
- }
- }
- }
- void BSort3(float* a, int n, int* n_cmp, int* n_move)
- {
- int j, last = n - 2, changed;
- while (last >= 0)
- {
- changed = -1;
- for (j = 0; j <= last; j++)
- {
- (*n_cmp)++;
- if (a[j] > a[j + 1])
- {
- Swap(&a[j], &a[j + 1]);
- (*n_move)++;
- changed = j - 1;
- }
- }
- last = changed;
- }
- }
- void InsertionSort(float* a, int n, int* n_cmp, int* n_move)
- {
- int i, j;
- float x;
- for (i = 0; i < n; i++)
- {
- x = a[i];
- j = i - 1;
- (*n_cmp)++;
- while (j >= 0 && a[j] > x)
- {
- a[j + 1] = a[j];
- j--;
- (*n_cmp)++;
- }
- a[j + 1] = x;
- (*n_move)++;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement