Сортировка массива строк по алфавиту
Отсортировать массив строк по алфавиту. Учитывать только первый символ каждой строки.
Решение данной задачи мало чем отличается от сортировки чисел, так как буквы алфавита в таблице кодов символов следуют друг за другом. Это значит, например, что буква ‘a’ имеет код на единицу меньше, чем ‘b’. При этом в Паскале не обязательно получать коды букв, можно непосредственно сравнивать сами буквы.
Для того чтобы получить первую букву строки, являющейся элементом массива, надо учесть, что строка сама по себе является своеобразным массивом. Другими словами, мы имеем дело с двумерным массивом. Чтобы извлечь первый элемент вложенных массивов, надо указать второй индекс равный 1. Например, str[i][1] , где i — это текущий элемент массива строк, а 1 — первый символ.
В задаче ниже выбрана сортировка пузырьком. Строки, начинающиеся с букв, которые стоят позже по алфавиту, постепенно переставляются в конец массива.
Программа на языке Паскаль:
const N = 5; var str: array[1..N] of string[20]; s: string[20]; i, j: byte; begin for i:=1 to N do readln(str[i]); for i:=1 to N-1 do for j:=1 to N-i do if str[j][1] > str[j+1][1] then begin s := str[j]; str[j] := str[j+1]; str[j+1] := s; end; writeln; for i:=1 to N do write(str[i], ' '); writeln; end.
Пример выполнения программы:
one two three four five four five one two three
Написать программу которая сортирует по алфавиту слова
Разработайте универсальную подпрограмму, которая сортирует слова строки по алфавиту
Разработайте универсальную подпрограмму, которая сортирует слова строки по алфавиту. Слова в строке.
Составить программу, которая корректирует список и сортирует его либо по среднему баллу, либо по алфавиту
Список студенческой группы записан на диске как текстовый файл. Каждая строка списка содержит.

Составить программу, которая корректирует список и сортирует его либо по среднему баллу, либо по алфавиту
Список студенческой группы записан на диске как текстовый файл. Каждая строка списка содержит.
Написать программу, которая сортирует элементы массива по двум ключам
Код ниже нацелен на решение данной задачи : Примером сортировки по двум ключам может служить.
239 / 265 / 218
Регистрация: 14.11.2016
Сообщений: 1,035
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
#include #include #include // std::sort #include // std::less<> std::greater<> int main() { std::string words[7]{"G", "B", "F", "A", "E", "D", "C"}; //std::sort(words, words + 7); std::sort(words, words + 7, std::lessstd::string>{}); //std::sort(words, words + 7, std::greater<>); for (unsigned i{}; i 7; ++i) { std::cout [ i] :: endl; } }
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Написать программу, которая сортирует массив из 8 целых элементов по возрастанию.
Написать программу, которая сортирует массив из 8 целых элементов по возрастанию.

Написать программу, которая сортирует прописные русские буквы по возрастанию
Написать программу, которая сортирует прописные русские буквы по возрастанию методом пузырька
Написать программу, которая сортирует массив из N элементов по возрастанию методом «пузырька»
20. Написать программу, которая сортирует массив из N элементов по возрастанию методом «пузырька».
Написать программу, которая формирует типизированный файл. и сортирует методом выбора
Написать программу, которая формирует типизированный файл из k-случайных чисел и сортирует методом.
Сортировка слов в тексте по алфавиту и длине в Python 3





Задание: пользователь должен ввести с клавиатуры произвольный текст, который должен сначала отсортироваться по алфавиту (каждое слово по алфавиту), а затем каждое слово должно быть остортировано по длине. Результаты должны быть выведены на экран.
Версия Python 3.5
Когда читаешь документацию или смотришь уроки по Питону, всё предельно ясно и просто. А вот когда приходит время для практических заданий, оказывается всё не так просто, как казалось ранее. По данной задаче были попытки найти простое и понятное решение в гугле по запросам «сортировка строк python», «сортировка кортежа python» (были предположения перевести слова в кортеж), «слова по алфавиту в тексте python», «отсортировать текст по алфавиту python», «сортировка по алфавиту python», «перевести строку в список» и даже «перевести список в строку». В результате моих мучений и помощи со стороны были реализованы простые решения данной задачи.
Вывод на экран введённого текста .
Для начала определим переменную, которая будет записывать и выводить затем введённый пользователем произвольный текст. Затем выведем на экран значение переменной при помощи оператора вывода print. Здесь всё просто.
text=str(input("Enter text: ")) print(text)
Сортировка символов в списке по алфавиту .
При помощи функции sorted() отсортируем по алфавиту но не каждое слово, а каждый символ. В задаче этого не было, но на всякий случай оставлю и этот вариант здесь. Чтобы функция работала, создаём новую переменную, в которую складываем все символы отдельно и затем выводим их по алфавиту.
newList = sorted(text) print(newList) #Выведется в списке отсортированный по алфавиту каждый символ в тексте
Сортировка списка из слов по алфавиту .
Преобразование строки в список слов можно выполнить при помощи функции split() по формуле (синтаксису): S(или любая другая переменная).split(символ). То есть, происходит по сути разбиение строки по определённому разделителю, в данном случае — по пробелу. Правда, по такому коду отсортируются слова по алфавиту именно в списке (с полным синтаксисом списков: квадратными скобками и заключение каждого слова в кавычки). Немного не то опять, что нам хотелось бы получить в решении задания.
n=sorted(text.split()) print(n) #Выведется в списке отсортированные по алфавиту слова, что были в ведённом пользователем тексте
Сортировка слов в строке по алфавиту .
А вот код ниже с использованием той же функции split() и цикла путём итерирования слов в тексте будут выведены на экран отсортированные по алфавиту введённые пользователем слова текста. А чтобы при итерации каждое слово не было с новой строки (как по умолчанию), дополнительно введём переменную e, с помощью которой слова будут выведены в одну строку, а не в столбик.
w=text.split() e="" for r in sorted(w): e=e+" " +r print(e) #Выведется в строке сортировка слов из введённого пользователем текста по алфавиту
Сортировка слов по длине .
Пришло время отсортировать слова в тексте по их длине. Здесь также используем split() для разделения слов в тексте. Теперь нужно отсортировать слова по длине. Для этого нужно создать анонимную функцию (содержащую лишь одно выражение определения длины слова) при помощи инструкции lambda.
l = text.split() q="" for i in sorted(l,key=lambda a: len(a)): q = q + " " + i print(q) #Выведется в строке отсортированные в порядке возрастания количества символов слова из введённого пользователем текста
Урок 4. Сортировка результатов
В SQL часто кроме фильтрации данных, также часто требуется отсортировать их по одному из столцов.
В первом уроке мы написали SQL-запрос для получения данных о совершенолетних пользователях. Посмотрим на него еще раз:
SELECT last_name, first_name, birthday FROM users WHERE age >= 18
| id | last_name | first_name | birthday |
|---|---|---|---|
| 1 | Иванов | Дмитрий | 1996-12-11 |
| 3 | Шевченко | Тимур | 1998-04-27 |
| 4 | Иванова | Светлана | 1993-08-06 |
| 6 | Иванов | Алексей | 1993-08-05 |
| 7 | Процук | Алена | 1997-02-28 |
Обратите внимание, что сейчас данные никак не упорядочены. Ни по фамилии, ни по имени, ни по дате рождения. Но давайте добавим после конструции WHERE: ORDER BY last_name:.
SELECT last_name, first_name, birthday FROM users WHERE age >= 18 ORDER BY last_name
После выполнение данного SQL запроса мы получим таблицу отсортированную по столбцу last_name (фамилия). Так как last_name хранит строки, то сортировка происходит в алфавитном порядке:
| id | last_name | first_name | birthday |
|---|---|---|---|
| 1 | Иванов | Дмитрий | 1996-12-11 |
| 6 | Иванов | Алексей | 1993-08-05 |
| 4 | Иванова | Светлана | 1993-08-06 |
| 7 | Процук | Алена | 1997-02-28 |
| 3 | Шевченко | Тимур | 1998-04-27 |
Обратите внимание, что данные отсортированы только по фамилии, но не по другим полям. Однако давайте добавим через запятую еще один столбец, например, first_name:
SELECT last_name, first_name, birthday FROM users WHERE age >= 18 ORDER BY last_name, first_name
Теперь таблица отсортирована сразу по двум поля, сперва по фамилии, а уже затем по имени:
| id | last_name | first_name | birthday |
|---|---|---|---|
| 6 | Иванов | Алексей | 1993-08-05 |
| 1 | Иванов | Дмитрий | 1996-12-11 |
| 4 | Иванова | Светлана | 1993-08-06 |
| 7 | Процук | Алена | 1997-02-28 |
| 3 | Шевченко | Тимур | 1998-04-27 |
Разумеется, сортировать можно не только по текстовым полям. Например, можно написать ORDER BY birthday:
SELECT last_name, first_name, birthday FROM users WHERE age >= 18 ORDER BY birthday
И получить данные упорядоченные по дате рождения в хронологическом порядке:
| id | last_name | first_name | birthday |
|---|---|---|---|
| 6 | Иванов | Алексей | 1993-08-05 |
| 4 | Иванова | Светлана | 1993-08-06 |
| 1 | Иванов | Дмитрий | 1996-12-11 |
| 7 | Процук | Алена | 1997-02-28 |
| 3 | Шевченко | Тимур | 1998-04-27 |
А если в конструкции ORDER BY после имени столца написать DESC, то данные будут отсортированы в обратном порядке — свежие даты выше:
| id | last_name | first_name | birthday |
|---|---|---|---|
| 3 | Шевченко | Тимур | 1998-04-27 |
| 7 | Процук | Алена | 1997-02-28 |
| 1 | Иванов | Дмитрий | 1996-12-11 |
| 4 | Иванова | Светлана | 1993-08-06 |
| 6 | Иванов | Алексей | 1993-08-05 |
Более того при сортировке данных по нескольким столцам, мы можем для разных столцов указывать разные направления сортировки. Например ORDER BY last_name, birthday DESC:
SELECT last_name, first_name, birthday FROM users WHERE age >= 18 ORDER BY last_name, birthday DESC
Тогда данные будут сперва отсортированы в алфавитном порядке по фамилии, а уже внутри каждой фамилии по дате рождения в обратном порядке:
| id | last_name | first_name | birthday |
|---|---|---|---|
| 6 | Иванов | Алексей | 1993-08-05 |
| 1 | Иванов | Дмитрий | 1996-12-11 |
| 4 | Иванова | Светлана | 1993-08-06 |
| 7 | Процук | Алена | 1997-02-28 |
| 3 | Шевченко | Тимур | 1998-04-27 |
Следующий урок
Урок 5. Ограничение и смещение
В этом уроке вы научитесь ограничивать итоговые результаты с помощью конструкции LIMIT и делать смещение с помощью OFFSET
Полный курс с практикой
- 57 уроков
- 261 задание
- Сертификат
- Поддержка преподавателя
- Доступ к курсу навсегда
- Можно в рассрочку
