Отсортировать элементы массива по алфавиту C++
Всем привет! Необходимо отсортировать массив по алфавиту. В моем случае это W количество элементов в массиве FZ. Будет интересно почитать ваши идеи, заранее большое спасибо!
Код если он тут нужен :
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
cout << "How much arr elem?\n";
int W; //Обьявили переменную W. Количество элементов массива.
cin >> W;
char FZ[W];
for(int i=0;i<W;i++) // Цикл ввода элемента массива с клавиатуры.
{
cout << "enter array elem\n";
cin >> FZ[i];
}
for(int i=0;i<W;i++) // Цикл вывода элементов массива.
{
cout << FZ[i] << " "
}
}
Ответы (1 шт):
Автор решения: Dislikedd
→ Ссылка
Как оказалось символы ( ну или проще буквы английского алфавита) можно сравнивать.
Это значит, что a < b ,а b < c.
Исходя из этого фигачим все пузырьком (см. Пузырьковая сортировка).
Код в итоге получился во такой! И он рабочий
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
cout << "How much arr elem?\n";
int W; //Обьявили переменную W. Количество элементов массива.
cin >> W;
char FZ[W];
for(int i=0;i<W;i++) // Цикл ввода элемента массива с клавиатуры.
{
cout << "enter array elem\n";
cin >> FZ[i];
}
cout << "\nnotSort array:" << " ";
for(int i=0;i<W;i++) // Цикл вывода элементов массива.
{
cout << FZ[i] << " ";
}
// Пошла СОРТИРОВКА оп оп оп
for (int i = 0; i < W; i++)
{
for (int j = 0; j < W-1; j++)
{
if (FZ[j] > FZ[j + 1])
{
int b = FZ[j]; // создали дополнительную переменную
FZ[j] = FZ[j + 1]; // меняем местами
FZ[j + 1] = b; // значения элементов
}
}
}
cout << "\nSort array:" << " ";
for (int i = 0; i < W; i++) {
cout << FZ[i] << " "; // выводим элементы массива
}
}
Результат:
How much arr elem?
4
enter array elem
a
enter array elem
g
enter array elem
c
enter array elem
f
notSort array: a g c f
Sort array: a c f g