Метод пузырька, как уменьшить число полных циклов при сортировке? - QBasic

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

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

как можно доработать программу, чтобы уменьшилось кол-во полных циклов(проходов) при сортировке?
Листинг программы
  1. CLS
  2. DIM a(10)
  3. RANDOMIZE TIMER
  4. FOR n = 1 TO 10
  5. a(n) = INT(RND * 15)
  6. PRINT a(n);
  7. NEXT
  8. PRINT
  9. FOR m = 1 TO 9
  10. FOR n = 1 TO 9
  11. IF a(n) > a(n + 1) THEN SWAP a(n), a(n + 1)
  12. NEXT
  13. PRINT
  14. FOR i = 1 TO 10
  15. PRINT a(i);
  16. NEXT
  17. NEXT
  18. PRINT
  19. FOR n = 1 TO 10
  20. PRINT a(n);
  21. NEXT

Решение задачи: «Метод пузырька, как уменьшить число полных циклов при сортировке?»

textual
Листинг программы
  1.    rem массив A(n)
  2.  
  3.    DO
  4.  
  5.        c=0
  6.  
  7.        FOR i=1 TO n-1
  8.            IF A(i) > A(i+1) THEN
  9.               SWAP A(i),A(i+1)
  10.               c=c+1
  11.            END IF
  12.        NEXT i
  13.  
  14.        IF c=0 THEN EXIT DO '::: Если перестановок не было - массив отсортирован
  15.  
  16.    LOOP

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

  1. Массив A(n)
  2. Цикл DO с ограничением на количество полных циклов (вероятно, 20)
  3. Переменная c инициализируется значением 0
  4. Цикл FOR i=1 TO n-1
  5. Если A(i) больше A(i+1), то происходит перестановка элементов A(i) и A(i+1)
  6. Значение переменной c увеличивается на 1
  7. Цикл FOR завершается
  8. Если переменная c равна 0, то цикл DO завершается (массив отсортирован)
  9. Цикл LOOP начинается заново с пункта 3

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


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

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

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

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

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

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