Могу ли я использовать обычную сортировку пузырьков для алфавитного размещения списка? - PullRequest
0 голосов
/ 21 января 2019

Я знаю сортировку по пузырькам и сортировку по номерам, но можно ли это сделать со словами? Можно ли расположить алфавитный список? Я создал программу сортировки с выделением и пузырьковую сортировку, но не знаю, как изменить ее для работы со словами. Мне нужно создать программу, которая будет принимать элементы с количествами от пользователя и выводить их в алфавитном порядке, сохраняя при этом числа. Я ни в коем случае не прошу всю программу, только эту подробную помощь. Я также знаю, что он предложил использовать параллельные массивы в этом. Пожалуйста и спасибо!

void selectionSort(int arr[], int length)
{
int lowest = 0;
int temp;

//each time moving the lowest item

for(int i=0; i < length-1; ++i)
{
//goes through array once starting from "boundary"
lowest = i;
for(int j=(i+1); j < length; ++j)
{
  if(arr[j] < arr[lowest])
  {
    lowest = j;
  }
}
//swap 
temp = arr[i];
arr[i] = arr[lowest];
arr[lowest] = temp;
}
}

1 Ответ

0 голосов
/ 21 января 2019

Код, который вы хотите получить:

#include<vector>
#include<string>
#include<algorithm>

void f(std::vector<std::string> &v)
{
    std::sort(std::begin(v), std::end(v));
}

Вектор содержит значения и знает, сколько элементов используется.

Строка имеет дело со всем, что связано со строками, включая длину и сортировку.

У сортировки есть фактический алгоритм (или несколько), чтобы сортировка была максимально эффективной, намного более эффективной, чем ваша пузырьковая сортировка.

Если вы хотите что-то еще, кроме сортировки по умолчанию, вы можете передать лямбду (или другую вызываемую функцию) в функцию сортировки. См. Примеры в cppreference для получения более подробной информации.

Так что на самом деле 1 строка кода с минимальным шансом на ошибки. Правильное использование C ++ может упростить решение тривиальных задач.

...