Выбор строки Сортировка C ++ - PullRequest
1 голос
/ 16 июля 2010

Как бы я изменил функцию selectionSort для поиска в массиве строк?

void selectionSort (int array[], int size)
{
    int startScan, min Index, minValue;
    for (startScan = 0; startScan<(size-1); startScan++)
    {
        minIndex=startScan;
        minValue=array[startScan];
        for(int index = startScan + 1;index<size;index++)
        {
            if (array[index] < minValue)
            {
                minValue=array[index];
                minIndex=index;
            }
        }
    }
}

Ответы [ 3 ]

1 голос
/ 16 июля 2010

Как я понимаю ваш вопрос, вам нужно обобщить ">" на строки - вы, очевидно, можете использовать некоторую библиотечную функцию (для строк STL, > определено), но если это домашнее задание, вы, вероятно, находитесь внужно написать свое.Если мы ограничены ASCII, это довольно просто, в то время как коды букв ASCII имеют алфавитный порядок ((int)'A'<(int)'B').
Для сравнения строк вы должны начать с первых букв двух строк, если они не равны, вернуть результат ихсравнение, и если они одинаковые, переходите к следующей паре.

0 голосов
/ 16 июля 2010

Операторы <и> уже могут обрабатывать сравнение строк в алфавитном порядке.просто перегрузите функцию, чтобы в параметрах был массив строк [] вместо массива int [].Единственная проблема заключается в том, что эти операторы чувствительны к регистру, поэтому вам нужно преобразовать все символы в строке в верхний или нижний регистр перед выполнением проверки.

0 голосов
/ 16 июля 2010

Создайте функтор, который принимает массив строк и обрабатывает сравнение по вашему желанию (если STL).

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