|
Сортировка массива структур методом вставки
|
|||
---|---|---|---|
#18+
Нужна помощь со сборкой задачи. Задача: Соединить конечное множество точек на плоскости замкнутой линией без самопересечений с вершинами в этих точках.(Ответом будет порядок обхода точек плоскости). Подсказка: перейти к полярным координатам и упорядочить точки по значениям угла, а для точек с одинаковым значением угла -по расстоянию до полюса.Используйте алгоритм сортировки вставками. Если кто не знает, в полярной системе координат также как и в декартовой есть две координаты: полярный радиус и полярный угол. Полярный радиус это расстояние от точки О - полюса до заданной точки Полярный угол это угол между полупрямой ОХ(полупрямой, т.к нет отрицательных значений, это как обычная декартова ОХ, но без отрицательных значений) и полярным вектором от точки О до заданной точки. Отсчитывается против часовой стрелки. Сделал массив структур, задал их, перевёл с помощью функции координаты в полярные. И дальше проблема - сортировка. Я в ней не шарю. Отсортировал значения углов точек, а их сами нет. Нужно как-то отсортировать точки по сначала оп углам(у), а потом те, которые в значениях углов совпадают, отсортировать по значению радиуса. Помогите пожалуйста, скоро сдавать. Код: plaintext 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2018, 18:39 |
|
Сортировка массива структур методом вставки
|
|||
---|---|---|---|
#18+
Сортировка вставками гораздо лучше делается на односвязном списке, чем на массиве. Заодно отпадёт и вопрос "отсортировал значения углов точек, а их сами нет", ибо точка будет представлена структурой. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2018, 18:49 |
|
Сортировка массива структур методом вставки
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Сортировка вставками гораздо лучше делается на односвязном списке, чем на массиве. Заодно отпадёт и вопрос "отсортировал значения углов точек, а их сами нет", ибо точка будет представлена структурой. Списки мы успешно не проходили, я не знаю, что это. Препод много болеет. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2018, 18:54 |
|
Сортировка массива структур методом вставки
|
|||
---|---|---|---|
#18+
В общем, вот код, но есть одна большая проблема: это не сортировка вставками, а надо именно вставками. Помогите, пожалуйста. Код: plaintext 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2018, 20:09 |
|
Сортировка массива структур методом вставки
|
|||
---|---|---|---|
#18+
else aaaэто не сортировка вставками, а надо именно вставками Надо, для начала, сделать пару функций, для вставки и выдёргивания элемента по индексу. Т.е. есть у тебя массив Код: plaintext 1.
Ты выдёргиваешь элемент M, все элементы правее его сдвигаешь на 1 влево. Так же со вставкой: надо поставить новый элемент на место M, сдвигаешь сначала все элементы с позиции М включительно вправо, потом "вставляешь" новый элемент по индексу M. А после этого, вместо свапа Код: plaintext 1. 2. 3.
делаешь выдёргивание-вставку этими самыми функциями. Такой был план? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2018, 05:48 |
|
|
start [/forum/topic.php?fid=57&fpage=16&tid=2017723]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 159ms |
0 / 0 |