[HomeWork] Структури от данни - Dictionaries, Hash Tables and Sets
Моето домашно на Java: ТУК
Ще съм благодарен за коментари или въпроси.
Моето домашно на Java: ТУК
Ще съм благодарен за коментари или въпроси.
Здравейте това е моето домашно на C# досега това съм написал доста се помъчих с този OrderedSet на 4-та задата.
Скоро ще е решена на линка на github-a ми. Интересното е че дървета а и другите структори от данни ги има в MSDN като готов код и може да се видят. Реално на практика в живота няма да ни се налага да имплементираме структури от данни освен ако не работим с език които не ги е имплементирал. Идеята е да разберем как работят различните видове структури от данни от всички тези домашни и да развиен алгуритмично мислене.
https://msdn.microsoft.com/en-us/library/ms379572(v=vs.80).aspx това е линк на бинарни дървета в MSDN
https://github.com/DimitarStoyanovVictory/Data-Structures/tree/master/Data-Structures-Homework06-DictionariesHashTablesSets - Домашното с моята имплементация на бинарните дървета, вярвам че доста добре се получи отворен съм за коментари на това как да се подобри.
Този курс няма абсолютно никакъв смисъл от практическа гледна точка. Всички тези неща ги има готови и разработени от големи професионалисти, оптимизирани във всяко едно отношение. Ползват се на готово. Този курс по същество е някакъв вид академично занимание, което е по-скоро математика и логика, отколкото прогамиране. Аз лично участвам, защото ми доставя удоволствие да решавам подобни задачи, а не защото има някакъв смисъл. Дори, бих казал, че решавам задачите не по най-добрия начин, просто защото не съм чак толкова напреднал в C# и не знам всички възможности на езика. Така някой път се получава доста обемен и изумяващ код, просто защото не съм знаел за някоя по-проста готова функция. Но логически и математически, задачите са решени и е приятно да се случи. За съжаление не ми стига времето и понякога решавам само най-сложната задача.
Принципно, дори да станеш цар на структурите от данни и на алгоритмите, и да си по-добър от гурутата в Майкрософт, които пишат готовите за нас класове, дори да е така, това има малка практическа стойност, защото самите готови класове са достатъчно добри и дори някой дето не разбира нищо от това как са изградени, може да ги ползва.
Вероятно подобен курс има смисъл за някакъв вид научна дейност - развитие на програмирането и създаване на нови концепции. За тази цел е важно този тип мислене, което се тренира със сложни по същността си задачи.
@dobribozhilov
Ако ще се водим на принципа "някой вече го е измислил/написал" давай да ходим на нивата да берем домати и краставици. Това, че вече има нещо под някаква форма не значи, че е то е толкова перфектно и несравнимо. Не се знае дали утре няма ти да измислиш нещо много по-добро от това, което вече го има. А в рамките на този курс ако мисли някой, че не е важно как работят структурите и алгоритмите от зад, какъв performance имат и прочие съвсем учтиво им предлавам да отиват да правят сайтове (с извинение). За да работиш с нещо наистина не ти е нужно да знаеш всичко как работи отзад, но за да работиш ефективно и на много високо ниво вече трябва да знаеш всичко, което е под капака. Колкото повече знаеш, толкова по-добър си ;)
Всяко трупане на познание е полезно. Аз за разнообразие си чета Теорията на относителността. Въпросът е за връзката между познанието и наличните работни места.