Реализация алгоритма "Быстрая сортировка" на Quick Basic - QBasic

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток! Мне нужна реализация классического алгоритма "быстрая сортировка" на quick basic. Перерыл интеренет - есть на каких угодно языках но только не на этом. Конкретизирую: Отсортировать по возрастанию одномерный массив заполненный случайными целыми числами. Заранее спасибо.

Решение задачи: «Реализация алгоритма "Быстрая сортировка" на Quick Basic»

textual
Листинг программы
  1. DECLARE SUB SORT (LOW!, high!)
  2. CLS
  3. RANDOMIZE TIMER
  4.  
  5. INPUT "Vvedite razmer massiva: ", razmer
  6.  
  7. DIM SHARED y(razmer)
  8.  
  9. PRINT "Ishodnij massiv:"
  10. FOR i = 1 TO razmer
  11.  y(i) = INT(RND * 100) + 1
  12.  PRINT y(i);
  13. NEXT i
  14. PRINT
  15.  
  16. i = 1
  17. DO
  18.     FOR j = 1 TO i
  19.         SORT razmer / i * (j - 1), razmer / i * j
  20.     NEXT j
  21.     IF i > razmer THEN EXIT DO
  22.     i = i * 2
  23. LOOP
  24.  
  25. PRINT "Otsortirovannij massiv:"
  26. FOR i = 1 TO razmer
  27.  PRINT y(i);
  28. NEXT i
  29.  
  30. SUB SORT (LOW, high)
  31.     sr = INT((LOW + high) / 2)
  32.     DO
  33.         imax = LOW
  34.         FOR i = LOW TO sr
  35.             IF y(i) > y(imax) THEN imax = i
  36.         NEXT i
  37.        
  38.         jmin = sr + 1
  39.         FOR j = sr + 1 TO high
  40.             IF y(j) < y(jmin) THEN jmin = j
  41.         NEXT j
  42.        
  43.         IF y(imax) > y(jmin) THEN SWAP y(imax), y(jmin) ELSE EXIT DO
  44.     LOOP
  45. END SUB

Объяснение кода листинга программы

  1. Ввод размера массива.
  2. Создание массива и заполнение его случайными числами.
  3. Вывод на экран исходного массива.
  4. Запуск процедуры сортировки.
  5. Удвоение размера массива и повторный запуск процедуры сортировки до тех пор, пока размер массива не станет равным 1.
  6. Вывод на экран отсортированного массива.
  7. Подпрограмма сортировки использует метод Быстрая сортировка.
  8. Подпрограмма сортировки рекурсивная и принимает в качестве параметров минимальный и максимальный индексы подмассива для сортировки.
  9. Выбор опорного элемента, для этого используется средний индекс подмассива.
  10. Нахождение индексов опорного элемента в подмассиве.
  11. Если найденные элементы меняются местами, значит, опорный элемент находится на своем месте, иначе он меняется местами с элементом, находящимся на позиции минимального индекса, и рекурсивно вызывается функция сортировки для подмассива с элементом на позиции минимального индекса в качестве опорного.
  12. Если найденные элементы не меняются местами, значит, опорный элемент находится на позиции максимального индекса, и рекурсивно вызывается функция сортировки для подмассива с элементом на позиции максимального индекса в качестве опорного.
  13. Процесс повторяется до тех пор, пока размер подмассива не станет равным 1.
  14. Процесс повторяется для каждого подмассива, полученного в результате деления исходного массива на две части по опорному элементу.
  15. После сортировки массива выводится на экран.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.077 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут