Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
Есть структура. В ней четыре поля. Два любых поля могут совпадать, могут не совпадать. Если два поля совпадают, то лишнее нужно удалить и установить счетчик в 3. Если больше двух полей совпадают сообщить об ошибке. Как это попроще (покрасивше) это сделать в стиле cpp?
про себя смолчу, а вот ты или умственно отсталый(раз говоришь об этом в каждом треде как тараторка) или имеешь гомосексуальные наклонности(все время думаешь об этой своей проблеме и проецируешь на других)
Вспомнился анекдот весьма старый, сейчас его уже не понимают:)
Пpогpаммеpы квасят на пpиpоде. Идут pазговоpы, тpали-вали...
Один pассказывает:
- Познакомился тут с девушкой на дискотеке! Бесподобная деваха!
И фигуpка, и мозги есть, и танцует хоpошо! Так вот, pешил pickup'нуть ее к себе домой. Пpигласил, она согласилась. Пpишли, выпили винца, поговоpили о том, о сем, музыку послушали. Потом я ее поцеловал, пpиподнял аккуpатно, посадил задницей на клавиатуpу, поднял юбку...
Остальные:
- Так у тебя контупеp дома стоит?!?! А какой???
Не могу, сука, передать, как меня, блять, бесят люди, которые пишут в форумы, блоги, каменты и почту слово "Баян!".
Ну отлично, молодец, знаешь ты этот анекдот, видел ты эту картинку, знаком с этим сайтом, успел с утра прочесть новость - ну и сиди, блять, и не пизди, дай другим людям понаслаждаться.
Приходят, блять, в каменты и гордо печатают: "Баянищще!" или "Да этому сто лет уже". Ну и хуй с ним. Да хоть, сука, триста.
Эти пидарасы являются идеальными одноразовыми потребителями. С утра увидели что-то, посмотрели, а к обеду любая ссылка на это что-то уже считается баяном. Чтоб у вас клавиатуры сгорели, уебаны!
Самое главное, что многие, кто дал на что-нибудь ссылку, и кому тут же в каменты насыпали "баян, баян", замыкаются и впредь боятся писать о чем-либо. Правильная реакция должна быть такой: "Баян? Ну и пошел нахуй, пидарас!" Тогда уже баянист задумается - а стоит ли в следующий раз вафельницу раззявать.
а теперь задумайся своим огромным и глупым мозгом, зачем искать код где-то на рсдн, который обосрал весь рсдн, потом постить сюда, где пол рсдна будут тупо копипастить свои коменты... зачем гонять воздух туда сюда, открой любой свой проект, там уникального говна в каждом файле хватает...
PS. Ой, опоздал, только прочел, что уже есть.
PPS. Согласен, вообще. Не знаю, что за РВСН, но мне понравилось.
Но тут как всегда, есть два подхода к представлению информации... И, соответственно, адепты.
да. пока действуют транквилизаторы, его интеллект времена достигает среднестатистического интеллекта примата: может есть без посторонней помощи, срать в коментах, гуглить и википедствовать, коллегия врачей это считает прорывом локального масштаба.
int k = (A==B)+(A==C)+(A==D)+(B==C)+(B==D)+(C==D );
if (k>=2) {ShowError}
else if (k==1) {
if (A==D || B == D || C == D) Delete(D)
else if (A==C || B == C) Delete(C)
else if (A == B) Delete(B);
}
Отсортировать? Быстрее? С чего бы? Сортировка - лишнаяя работа тут, с ней в принципе быстрее не будет. Я уж не говорю про то, что на массиве из 4х элементов накладные расходы будут, мягко говоря, заметны. Не, если заботиться о производительности, то код ТС лучше (я проверял).
твои первые 2 цикла это сортировка которую тут недавно обсуждали, она отработает за O(n log n)...
удаление лишних это O(n) а у тебя O( n log n ) + O(n/2)...
Первые два цикла ищут все перестановки из двух элементов без учёта порядка. Пока элементы в перестановке равны, на есто второго сдвигаем хвост последовательности и уменьшаем длину. Сначала вместо while был if.
можно не сдвигать, а записывать туда последний (не стабильный, О(1))...
либо удалить все одинаковые элементы за один проход (стабильный, О(M))
твой вариант удаления O(M log M)...
где M = count - j, в среднем N/2...
есть еще такой вариант:
проход по всем элементам
удаление дальше по массиву таких же элементов
свойства: стабильный, сложность в худшем случае О(n log n) если нечего удалять...
Пиздуй на двач блин, нефига тут тролей плодить.
Тут люди про компьютеры разговаривают.
Пpогpаммеpы квасят на пpиpоде. Идут pазговоpы, тpали-вали...
Один pассказывает:
- Познакомился тут с девушкой на дискотеке! Бесподобная деваха!
И фигуpка, и мозги есть, и танцует хоpошо! Так вот, pешил pickup'нуть ее к себе домой. Пpигласил, она согласилась. Пpишли, выпили винца, поговоpили о том, о сем, музыку послушали. Потом я ее поцеловал, пpиподнял аккуpатно, посадил задницей на клавиатуpу, поднял юбку...
Остальные:
- Так у тебя контупеp дома стоит?!?! А какой???
Программеры висят на говнокоде.
я этот шедевр на rsdn увидел. И никакого мне решения нахрен не нужно.
разгоняешься и в стену
ты спалился, урсус
расскажи кто это!
вот оригинал
http://rsdn.ru/forum/cpp/3842077.1.aspx
подробности тут http://www.govnokod.ru/3130
Ну отлично, молодец, знаешь ты этот анекдот, видел ты эту картинку, знаком с этим сайтом, успел с утра прочесть новость - ну и сиди, блять, и не пизди, дай другим людям понаслаждаться.
Приходят, блять, в каменты и гордо печатают: "Баянищще!" или "Да этому сто лет уже". Ну и хуй с ним. Да хоть, сука, триста.
Эти пидарасы являются идеальными одноразовыми потребителями. С утра увидели что-то, посмотрели, а к обеду любая ссылка на это что-то уже считается баяном. Чтоб у вас клавиатуры сгорели, уебаны!
Самое главное, что многие, кто дал на что-нибудь ссылку, и кому тут же в каменты насыпали "баян, баян", замыкаются и впредь боятся писать о чем-либо. Правильная реакция должна быть такой: "Баян? Ну и пошел нахуй, пидарас!" Тогда уже баянист задумается - а стоит ли в следующий раз вафельницу раззявать.
[:|/|/|/|:]
Вебкил, cука, такой тупой хомячек, что своих мозгов не имеет и вынужден копипастить других людей.
На одну зарплату PHPшника нынче не проживешь.
Идите нахуй, пидарасы.
Я уже писал о том, что писать "баян" - это пиздец какая тупость и уепство? Идите нахуй дважды.
Я уже писал о том, что писать "баян" - это пиздец какая тупость и уепство? Идите нахуй трижды.
Я уже писал о том, что писать "баян" - это пиздец какая тупость и уепство? Идите нахуй четырежды.
Я уже писал о том, что писать "баян" - это пиздец какая тупость и уепство? Идите нахуй пятижды.
Я уже писал о том, что писать "баян" - это пиздец какая тупость и уепство? Идите нахуй итакдалеежды.
[:|/|/|/|:]
Реквестирую цикл!
PS. Ой, опоздал, только прочел, что уже есть.
PPS. Согласен, вообще. Не знаю, что за РВСН, но мне понравилось.
Но тут как всегда, есть два подхода к представлению информации... И, соответственно, адепты.
но кажись он ненастоящий
хоть и радует перлами
пони нет и она здесь не насрёт. есть тебе нечего.
сделайте пацану лабу, парашу же схватит за девятый класс по информатике!
if (k>=2) {ShowError}
else if (k==1) {
if (A==D || B == D || C == D) Delete(D)
else if (A==C || B == C) Delete(C)
else if (A == B) Delete(B);
}
> else if (A == B) Delete(B);
else Delete(B);
true+true равно true
true - true равно false
http://codepad.org/0cIUQRxL
Имхо, без коментов код всё равно не очень понятен.
Это, видимо, шутка?
удаление лишних это O(n) а у тебя O( n log n ) + O(n/2)...
объясни плз что происходит в 3 и 4 цикле...
либо удалить все одинаковые элементы за один проход (стабильный, О(M))
твой вариант удаления O(M log M)...
где M = count - j, в среднем N/2...
есть еще такой вариант:
проход по всем элементам
удаление дальше по массиву таких же элементов
свойства: стабильный, сложность в худшем случае О(n log n) если нечего удалять...
bool isAB=false, isAC=false, isAD=false, isBC=false, isBD=false, isCD=false;
будет выглядеть покрасивше.
А ещё лучше:
bool isAB=(A==B), isAC=(A==C), isAD=(A==D), isBC=(B==C), isBD=(B==D), isCD=(C==D);
это плюс оптимизация инициализаций.
Но лучше, чем реализация с четырьмя циклами не придумаешь.