Loading...
krisdx avatar krisdx 68 Точки

Цък

0
15/09/2015 20:13:16
Filkolev avatar Filkolev 4482 Точки

Доста интересен подход в началото на метод, който трябва да сортира (по презумпция несортиран) масив, да се сложи bool areSorted = true :)

От логическа гледна точка не е правилно; например при смяна на два елемента задаваш false, но след именно тази смяна може вече масивът да е сортиран. Тук подходът по-скоро трябва да е обратен - да се приеме, че масивът не е сортиран, докато не се премине цяла итерация, при която не е извършена нито една размяна на елементи. Ако това се случи, сме сигурни, че сортирането е приключило.

2
RFilipov avatar RFilipov 136 Точки
for (int i = 0; i < inputLength; i++)
            {
                for (int j = 0; j < inputLength - 1; j++)
                {
                    if (array[j] > array[j + 1])
                    {
                        array[j] ^= array[j + 1];
                        array[j + 1] ^= array[j];
                        array[j] ^= array[j + 1];
                    }
                }
            }

В случай че се интересуваш от битови операции.

5
Rextor92 avatar Rextor92 149 Точки

Ето го и моето решение
 

Както Filkolev е казал - приемам, че масивът не е сортиран. По повод битовите операции - аз лично си харесвам старомодния начин за размяна на променливи, с допълнителна променлива. Другите варианти може да са хитри, но по този начин според мен кода е най-четим. Използвам ref (C# Reference) .

2
15/09/2015 22:45:05
dodoff avatar dodoff 55 Точки

Използването на ref е доста добро хрумване! Ще го ползвам! Благодаря!

1
DiyanTonchev92 avatar DiyanTonchev92 231 Точки

Въсщност използването на ref e непрепоръчително. По-добре да се избягва. 

0
Rextor92 avatar Rextor92 149 Точки
Би ли се аргументирал, може да пропускам нещо?

Според мен ref трябва да се използва относително рядко; но не е непрепоръчителен. В основата си ref и out са просто начини да получиш допълнителни стойности след края на изпълнението на метод и трябва да бъде избягвано - вероятно метода се опитва да свърши твърде много. Естествено това не винаги е вярно : TryParse е пример за разумно използване на out. Използване на ref в някой по-сложен метод или, не дай си боже, nested ref, би било объркващо. Swap метод, разменящ стойностите на две променливи ( особено такъв, който използвам в 2 задачи в домашното - BubbleSort и SelectionSort сортирането :) ), определено не е объркващ.

 
1
gamereaktor2118 avatar gamereaktor2118 3 Точки

http://pastebin.com/Rp796XzH

 

Това е моя вариант с два цикъла for. :)

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