Loading...
Hristo_Penchev avatar Hristo_Penchev 389 Точки

[Homework] Collection Data Structures and Libraries

Колеги, отварям темата, за да дискутираме домашното тук. Как разбирате четвърта задача? Да ползваме BigList<char> (което я прави елементарна) или сами да си пишем въжето (което пък е вече доста сложно)?

dim4o avatar dim4o 288 Точки

Мисля, че ако беше забранено да се ползва външна библиотека, щеше да бъде указано, както в зад. 3: Do not use any external library!

Смятам, че щом в 4-та не го пише - това значи, че можеш да ползваш външна библиотека или ако имаш желание да си го напишеш сам. Ако трябваше да имплементираме задължително и Rope задачата трябваше да има поне една звезда. Има и условие да се тества с много команди, вероятно и дълги стрингове и ако решиш да симулираш малко по-реални условия (random string, random length, вкарване на random position и т.н.) задачата няма да е чак толква лека откъм време.

1
dim4o avatar dim4o 288 Точки

Аз се чудя какви праметри би трябвало да приемат методите в задачата за priority queue. Аз я направих като сравнението на елемента дали е с по-голям или по-малък приоритет съм го оставил на класа на съответния обект. Например ако е Student, класа Student да си имплементира CompareTo(). Такава е май идеята и в примера от слайдосете - Enqueue(T element).

От друга страна обаче това не ми се струва съвсем коректно, защото Student може да си има ComapreTo(), който да му трябва за съвсем други цели. Например искаме студентите да се сортират по възраст, а от друга страна да имат приоритет по среден успех(то реално си е пак сортиране, но по друг критерий). Стигнах до извода, че може би добавянето трябва да е нещо от рода на queue.Enqueue(TPriority, Tvalue). Да имаме generic приоритет и generic стойност.

Вие как постъпихте в този случай?

0
Kamigawa avatar Kamigawa 750 Точки

Моето enqueue е  T value, int priority . Като мислех да слагам в инициализацията на опашката да може да се задават крайни стойности за инта, ама ме добързя и го направих от 1 до 5. Даже сега като си мисля можеше вместо инт да сложа една енумерация да е по-красиво.

0
19/08/2015 12:03:55
dim4o avatar dim4o 288 Точки

Т.е. можеш да работиш само с приоритети от 1 до 5. Правилно ли съм разбрал? Мin-heap ии max-heap използваш? Аз го направих с min-heap, защото се препоръчвало за priority queue, следователно 1 ще е с по-висок приоритет от 5 например, което за някои случаи е добре, а за други не.

0
Kamigawa avatar Kamigawa 750 Точки

Да с 1 до 5 включително работя, като явно е min-heap (не бях чувал досега за това :) ), 1 е с най-висок приоритет, 5 с най-нисък. Като нода има и пореден номер на влизане, като при избор на следващ нод за перънт се гледа първо приоритета и после проредния номер, за да бъде истинска опашка.

1
krach avatar krach 65 Точки

Имам чудене относно 3та задача. В джава имам PriorityQueue, а за да не го използвам него, във видеото на 1:09 казва да изпозлваме SortedDictionary а ако го използвам така, както описва във видеото, ми се струва че се обезсмисля задачата, понеже същото съм направи за 2ра задача. Та не знам какво да правя

0
dim4o avatar dim4o 288 Точки

В условието пише да се ползва binary heap, а не SortedDictionary.

0
dim4o avatar dim4o 288 Точки

Пускам моето домашно -> ДОМАШНО

Надявам се да има критики и да го обсъдим.

За първа задача не ми е ясно конзолен клиент ли се иска само или трябва да работи и с текстов файл. Или само с текстов файл. Аз я направих да работи с инпут от конзолата само.

За 2-ра и 4-та да се тестват с по-големи данни май беше най-трудоемката част.

За 4-та печатам само ERROR, но никъде не хвърлям Exeception. Незнам дали такава е била идеята, но аз така я разбрах. Като цяло е доста "изкуствена" задачата.

За 3-та нещо ме човърка, защото знам, че може да стане по-кратко или поне по-красиво. Иначе идеята за binary heap е направо гениална. Много просто и ефективно нещо. Дава и сортировка.

0
20/08/2015 23:22:56
nakov avatar nakov SoftUni Team Trainer 5295 Точки

Колеги, леко обнових условията на домашнотоCollection-Data-Structures-and-Libraries-Homework.docx. Няма съществени промени по същина. Дал съм примерен вход и изход на всяка задача. Махнах задачата за binary heap щото се повтаря с лаба от следващата тема в курса. Добавил съм навсякъде упътвания към задачите.

Наков

-2
MartinBorisov94 avatar MartinBorisov94 52 Точки

Възможно ли е да се направи по някакъв начин да излиза уведомление, че от даден курс някое от домашните е редактирано. По някаква случайност сега видях промените. Задачите са сходни нали, но все пак си има различия. Пък и утре при проверката като сме с различни версии ще е "забавно".

3
MartinDachev avatar MartinDachev 30 Точки

Ами много хубаво за примерите и "леко" ъпдейтнатите условия (които не са хич "леко" променени според мен), но аз това сега го виждам - 2-3 часа преди крайния срок. Сигурен съм, че има много хора, които са предали отдавна и това ще го видят след крайния срок, а също и че много проверяващи ще проверяват със стария вариант на домашното.

Сега трябва да преправям и първа и трета задача, защото input-а не се въвежда по същия начин, даже и други неща леко се различават.

0
nakov avatar nakov SoftUni Team Trainer 5295 Точки

Колеги, извинявам се за промяната в последния момент. Предлагам ви при проверката да проявите толерентност към вашите колеги и да гледате дали задачата е решена като подход, а не толкова детайлите по условията - те не са съществени.

В процес съм на търсене на нови хора в екипа. В момента не достигат ресурс да свършим всичко навреме. Очаквам скоро да успяваме да качваме добре подготвени домашни няколко дни преди всяка учебна тема.

Наков

2
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.