[C#] Arrays - 13 задача


1
13.* Write a program that sorts an array of integers using the merge sort algorithm (find it in Wikipedia).



Отговори



0

http://pastebin.com/9ZzdZZbU

Ето едно рекурсивно решение доста четене падна за тази задача. Обяснението е следното:

1. Започва се директно с извикване на метод които проверява двата края и ако има разстояние между тях намира средата.

2. Извиква се същия метод рекурсивно  за лявата и дясната част на които пак се намира средата и така докато не останат по два, един или нула елемети в двете извиквания

3. Копират се лявата и дясната част с Array.Copy

4. For loop върху оригиналния масив започащ от левия индекс до десния в които се проверяват стойностите във временните масиви и се поставят на съответните места. 

 

 


от petar_nikov (564 точки)


1

Здравейте колеги,

излагам и моето решение (не че е с нещо по-различно) и искам да задам един въпрос. Според мен в момента това работи, но го бях направил с два метода. Частта след (Sort(left);Sort(right);) бях сложил в друг метод на който му пращах двата масива и просто връщах слетите масиви (от метода) но не работеше. Премахнах метода като просто сложих кода на неговото място и всичко тръгна, на какво се дължи това нещо ?!?


от Sir_EFO (733 точки)


0
спам: това излагам е доста двусмислено :)))

от Sir_EFO (733 точки)