IPB
ЛогинПароль:

> Алгоритмы пузырьковой сортировки
Account
сообщение 23.06.2011 17:39
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 212
Пол: Мужской

Репутация: -  0  +


Итак, все знают что есть такой вид сортировки, как пузырьковая. Меня интересует какие еще есть алгоритмы в этом виде сортировки кроме: последовательного и чет-нечетной перестановки? И если есть информация о них поделиться ей, если не жалко.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
IUnknown
сообщение 27.06.2011 13:38
Сообщение #2


a.k.a. volvo877
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской

Репутация: -  627  +


     if (keepsmall) { /* Keep the nlocal smaller elements */ 

// Этот кусок упорядочивает в массив elmnts минимальные значения из elmnts и
// relmnts (которые получены от соседнего процесса) по возрастанию
// (сколько поместится в elmnts) Скажем, если было:
// elmnts = (27 39 54 74 90)
// relmnts = (22 38 50 65 69)
// то после выполнения нижеследующего куска кода
// elmnts = (22 27 38 39 50)

for (i=j=k=0; k<nlocal; k++) {
if (j == nlocal || (i < nlocal && wspace[i] < relmnts[j]))
elmnts[k] = wspace[i++];
else
elmnts[k] = relmnts[j++];
}
}
else { /* Keep the nlocal larger elements */
// Соответственно, этот кусок делает то же самое, но сохраняет nlocal максимальных
// элементов из совокупности elmnts и relmnts. Т.е., если
// elmnts = (16 18 47 62 70)
// relmnts = ( 1 13 23 29 92), то в результате
// elmnts = (29 47 62 70 92)
// в упорядоченном виде
for (i=k=nlocal-1, j=nlocal-1; k>=0; k--) {
if (j == 0 || (i >= 0 && wspace[i] >= relmnts[j]))
elmnts[k] = wspace[i--];
else
elmnts[k] = relmnts[j--];
}
}
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Account
сообщение 27.06.2011 20:50
Сообщение #3


Бывалый
***

Группа: Пользователи
Сообщений: 212
Пол: Мужской

Репутация: -  0  +


Цитата(IUnknown @ 27.06.2011 14:38) *

     if (keepsmall) { /* Keep the nlocal smaller elements */ 

// Этот кусок упорядочивает в массив elmnts минимальные значения из elmnts и
// relmnts (которые получены от соседнего процесса) по возрастанию
// (сколько поместится в elmnts) Скажем, если было:
// elmnts = (27 39 54 74 90)
// relmnts = (22 38 50 65 69)
// то после выполнения нижеследующего куска кода
// elmnts = (22 27 38 39 50)

for (i=j=k=0; k<nlocal; k++) {
if (j == nlocal || (i < nlocal && wspace[i] < relmnts[j]))
elmnts[k] = wspace[i++];
else
elmnts[k] = relmnts[j++];
}
}
else { /* Keep the nlocal larger elements */
// Соответственно, этот кусок делает то же самое, но сохраняет nlocal максимальных
// элементов из совокупности elmnts и relmnts. Т.е., если
// elmnts = (16 18 47 62 70)
// relmnts = ( 1 13 23 29 92), то в результате
// elmnts = (29 47 62 70 92)
// в упорядоченном виде
for (i=k=nlocal-1, j=nlocal-1; k>=0; k--) {
if (j == 0 || (i >= 0 && wspace[i] >= relmnts[j]))
elmnts[k] = wspace[i--];
else
elmnts[k] = relmnts[j--];
}
}


Правильно ли я понимаю, что
wspace[i--]//<---совокупность и elmnts и relmnts

и по сути из него выбирается опять же методом сравнения(как по твоему, если бы отсортировать его и потом просто делить, привело бы к уменьшению времени выполнения данного кода ?)

Сообщение отредактировано: Account - 27.06.2011 20:51
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Account   Алгоритмы пузырьковой сортировки   23.06.2011 17:39
IUnknown   Odd-Even Sort (так называемая "параллельная п...   23.06.2011 20:04
Account   Первая, действительно чет-нечет, а вот вторую не в...   23.06.2011 21:18
Account   Сортировка расческой (вроде как тоже усовершенство...   23.06.2011 21:55
IUnknown   Ты б лучше обе реализации привел, чтоб сравнить мо...   23.06.2011 22:18
Account   IUnknown, велосипед не придумывал выдернул код пр...   23.06.2011 22:48
IUnknown   Это надо сказать спасибо переводчикам Википедии. В...   23.06.2011 23:09
Account   Это надо сказать спасибо переводчикам Википедии. ...   23.06.2011 23:27
Account   Добавил чет-нечет и проводил эксперимент на сортир...   23.06.2011 23:51
Account   Никак до конца не пойму применения чет-нечет алгор...   26.06.2011 15:36
IUnknown   Вот по этому разобраться сможешь?   26.06.2011 18:05
Account   Основа понятна вот этот участок не очень особенно ...   26.06.2011 22:13
IUnknown   if (keepsmall) { /* Keep the nlocal smaller e...   27.06.2011 13:38
Account   [code=cpp] if (keepsmall) { /* Keep the nloca...   27.06.2011 20:50
IUnknown   С использованием MPI проверить нет возможности, а ...   28.06.2011 11:13
TarasBer   В Сях можно явно передавать то, что Ада передаёт н...   28.06.2011 11:38
IUnknown   16-ть процессоров, 8 ядер на каждом... 128, получа...   28.06.2011 11:54
TarasBer   Я так понял, тут фишка в том, что velmnts и vrelmn...   28.06.2011 13:33
IUnknown   Я ничего не хочу сказать, я констатирую факт: если...   28.06.2011 14:28
Account   Вот что меня еще смущает , погонял сортировку алго...   28.06.2011 15:05
TarasBer   То есть у тебя получился ЛИНЕЙНЫЙ рост времени? За...   28.06.2011 15:58
Account   То есть у тебя получился ЛИНЕЙНЫЙ рост времени? З...   28.06.2011 20:31
IUnknown   Это реально. В одном из описаний алгоритма встреча...   28.06.2011 21:13
Account   Так что не сомневайся, это действительно очень б...   28.06.2011 21:30
Account   IUnknown, случаем не знаешь иностранных ресурсов(в...   29.06.2011 17:41
IUnknown   У меня где-то был даже PDF, в котором сведены граф...   29.06.2011 17:55
Account   IUnknown, заранее благодарю. Еще вопрос такой. Ран...   29.06.2011 19:57
IUnknown   Неправильно понимаешь. Это не код основного прилож...   29.06.2011 21:06
Account   А количесвто пересылок, выражается трудоемкостью ...   29.06.2011 22:15
IUnknown   Каждый процесс посылает свою часть данных всем ост...   29.06.2011 22:45
Account   IUnknown, огромное тебе спасибо за все. Очень помо...   29.06.2011 23:14
Account   Кстати, а вот с какого процесса начинается объедин...   29.06.2011 23:36
IUnknown   Во-первых, я чуть-чуть поправил свой предыдущий по...   30.06.2011 2:11
Account   Еще раз спасибо, разжевал и в рот положил можно ск...   30.06.2011 2:28


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 5.11.2024 21:32
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"