|
Задача по Oracle PL/SQL
|
|||
---|---|---|---|
#18+
Ребята у меня есть такая задача Помогите пожалуйста с её решением. Необходимо написать сортировку массива строк методом "пузырька" используя Oracle PL/SQL. Оформить в виде кода хранимой процедуры, на вход которой подается массив, возвращается массив. Параметры: p_asc - сортировка по убыванию или по возрастанию (по умолчанию по возрастанию) p_nulls_last - значения NULL в конце списка (по умолчанию они больше бОльшего) declare p_arr dbms_sql.Number_Table; i pls_integer; procedure do_sort(p_arr in out dbms_sql.Number_Table, p_asc in boolean default null, p_nulls_last in boolean default null) is begin return; - тут код сортировки end; begin p_arr(-1) :=0; p_arr(0) :=-2; p_arr(1) :=10.1; p_arr(2) :=null; p_arr(3) :=10.1; p_arr(4) :=-1; p_arr(6) :=null; do_sort(p_arr); i := p_arr.first; while i is not null loop dbms_output.put_line('arr('||i||') = '|| nvl(to_char(p_arr(i)), 'null')||';'); i := p_arr.next(i); end loop; end; ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2022, 10:20 |
|
Задача по Oracle PL/SQL
|
|||
---|---|---|---|
#18+
ddfix return; - тут код сортировки что не получается алгоритм 11758438 непонятен ? или с null запутались? .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2022, 10:49 |
|
Задача по Oracle PL/SQL
|
|||
---|---|---|---|
#18+
ddfix Ребята у меня есть такая задача Помогите пожалуйста с её решением. Необходимо написать сортировку массива строк методом "пузырька" используя Oracle PL/SQL. Оформить в виде кода хранимой процедуры, на вход которой подается массив, возвращается массив. Параметры: p_asc - сортировка по убыванию или по возрастанию (по умолчанию по возрастанию) p_nulls_last - значения NULL в конце списка (по умолчанию они больше бОльшего) Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
Студентам, желающим помощи ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2022, 12:09 |
|
Задача по Oracle PL/SQL
|
|||
---|---|---|---|
#18+
Stax, да , мне не понятно как теперь передвинуть NULLS. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2022, 23:15 |
|
Задача по Oracle PL/SQL
|
|||
---|---|---|---|
#18+
ddfix Stax, да , мне не понятно как теперь передвинуть NULLS. [/src] Вопрос как - не имеет значения, до тех пор, пока не решено - куда . Вот c таким сравнением можно передвинуть в начало: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Перепишите это так, чтобы можно было по вашему желанию собирать Null в начале или в конце массива. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2022, 23:58 |
|
Задача по Oracle PL/SQL
|
|||
---|---|---|---|
#18+
ddfix Stax, да , мне не понятно как теперь передвинуть NULLS. условие перестановки усложните (null самое маленькое/большое и null==null не надо переставлять) пример дали 22423969 и главное, на сколько хотите сдать? если на 5, то циклы надо переделать неспроста ж у Вас p_arr( 4 ) :=-1; p_arr( 6 ) :=null; (результат Вы правильно выводите) да и класический алгоритм немножко другой (меня такому учили) https://uk.wikipedia.org/wiki/Сортування_бульбашкою у Вас чутку другой вариант сортировки бульбашкою ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2022, 10:26 |
|
Задача по Oracle PL/SQL
|
|||
---|---|---|---|
#18+
Stax, мне будет достаточно троечки)) + в условии мне нужно лишь написать код сортировки, но я уже это не могу сделать потому - что мне не хватает переменных я не знаю могу ли я их задавать или нет Условие Код: plsql 1. 2. 3. 4. 5. 6. 7.
То что у меня Код: plsql 1. 2. 3. 4. 5. 6.
И если честно я даже не понимаю как: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2022, 12:20 |
|
Задача по Oracle PL/SQL
|
|||
---|---|---|---|
#18+
ddfix Stax, мне будет достаточно троечки)) надеюсь на троечку хватит Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124.
..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2022, 13:17 |
|
Задача по Oracle PL/SQL
|
|||
---|---|---|---|
#18+
Stax, большое тебе спасибо! Надеюсь для тебя это было не слишком напряжно, обещаю усердно учиться, чтобы потом тоже кому-нибудь помочь на этом форуме!! ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2022, 16:17 |
|
Задача по Oracle PL/SQL
|
|||
---|---|---|---|
#18+
ddfix, напиши квиксорт для практики или портируй с любого языка ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2022, 23:27 |
|
Задача по Oracle PL/SQL
|
|||
---|---|---|---|
#18+
Анекдот, навеянный этой темойМой друг учится на электрика и, судя по нему и его одногруппникам, после того, как они придут на работу после окончания обучения, половину из них сразу убьет током, а другая половина оставит, как минимум, половину России без электричества. А я учусь в мединституте на врача. Так что тех молодых электриков, кого не убьет током сразу, убьют мои одногруппники. :-( ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2022, 15:21 |
|
|
start [/forum/topic.php?fid=52&msg=40127693&tid=1879576]: |
0ms |
get settings: |
21ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
91ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
328ms |
get tp. blocked users: |
2ms |
others: | 303ms |
total: | 778ms |
0 / 0 |