Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Вопросы начинающих

Вопросы начинающих Прежде чем задать вопрос, стоит воспользоваться поиском

Ответ
 
Опции темы Опции просмотра
Старый 06.04.2017, 17:53   #1
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 30
Сообщений: 1,360
Вес репутации: 2819/60
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию сортировка расческой

иногда хочется просто взять что-то и отсортировать по убыванию/возрастанию, а под рукой нет алгоритма.
выложу неоптимальный алгоритм сортировки просто чтобы было где быстро взять сортировку, когда нет времени. вроде работает. писал в спешке. -std=gnu11
Код:
/**
 * descending comb sort of 8bit values
 * @param src
 * @param count
 * @return true on success
 */
bool comb_sort8_des(uint8_t* src, uint_fast8_t count){
	if(count > 1){
	uint_fast8_t gap;
		gap = count;	
		for(;gap>1;){
			gap = (gap+gap+gap)>>2;
			for(uint_fast8_t temp = 0; (temp+gap) < count;++temp){
				if(src[temp] < src[temp+gap]){
				uint8_t swap;
					swap = src[temp];
					src[temp] = src[temp+gap];
					src[temp+gap] = swap;
				}
			}
		}
		for (uint_fast8_t temp0 = 0; temp0 < (count - 1); ++temp0){
		bool swapped = false;
			for (uint_fast8_t temp1 = 0; temp1 < (count - temp0 - 1); ++temp1){
				if(__builtin_expect((src[temp0] < src[temp1]),false)){
				uint8_t swap;	
					swap = src[temp1];
					src[temp1] = src[temp0];
					src[temp0] = swap;	
				}
			}
			if(!swapped)
				break;
		}		
		return true;		
	}
	return false;	
}
Вложения
Тип файла: zip comb_sort.zip (3.7 Кб, 7 просмотров)
besogon вне форума   Ответить с цитированием
Старый 06.04.2017, 18:12   #2
ampersant
Senior Member
 
Аватар для ampersant
 
Регистрация: 26.02.2008
Адрес: IgorV
Сообщений: 2,255
Вес репутации: 4364/100
ampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond repute
По умолчанию Re: сортировка расческой

http://www.microchip.su/showpost.php...37&postcount=2
там для медианы. Но сначала то идет сортировка.
ampersant вне форума   Ответить с цитированием
Старый 06.04.2017, 18:28   #3
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 30
Сообщений: 1,360
Вес репутации: 2819/60
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: сортировка расческой

ampersant
я с ходу не нашел, почему-то.
там в архиве набор сортировок расческой так или иначе.
ясное дело, что лучше бы раз и навсегда сделать сортировку кучей.
понятное дело, что как будет время - займусь.
будет что показать - выложу.

сортировка расческой суть чуть улучшенный алгоритм пузырьком.
в этом примере вырезана тяжелая операция деления пожалуй и все.
besogon вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка данных в РОНах Silence Вопросы начинающих 29 24.04.2013 08:04


Часовой пояс GMT +3, время: 03:43.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd. Перевод: zCarot