реализация алгоритма сортировки в c - PullRequest
0 голосов
/ 13 июня 2018

Чтобы отсортировать массив в порядке возрастания, я подумал о следующем:

#define SIZE 10 //as an example

void swapValues(int *x, int *y)
{
    int temp = *x;
    *x = *y;
    *y = temp;
}

void sort(int *array)
{
    int i, j;
    for(i = 0; i < SIZE-1; i++) {
        for(j = i + 1; j < SIZE; j++) {

            if(array[i] > array[j]) {
                swapValues( (array+i) , (array+j) );
            }

        }
    }
}


функция работает, но после просмотра это , мне немного любопытно, это похоже на алгоритм пузырьковой сортировки, но это не так, поэтому:

  1. является ли эта функция реализацией уже известной сортировкиалгоритм?
  2. как бы эта функция работала по сравнению с другими простыми алгоритмами сортировки, такими как сортировка по пузырькам или сортировка по выбору?

1 Ответ

0 голосов
/ 15 июня 2018

Ваша реализация использует сортировку выбора.Это не пузырьковая сортировка.Поскольку в пузырьковой сортировке мы сравниваем два последовательных элемента одновременно, поэтому это не так.Это сортировка выбора, в которой вы сравниваете один элемент с остальными элементами за раз в массиве и меняете местами соответственно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...