PDA

Показать полную графическую версию : Линейная сортировка одномерного массива.


Michael
18-06-2009, 23:20
Здравствуйте.
Подскажите пожалуйста алгоритм линейной сортировки одномерного массива, а то что-то никак найти его не могу. Или это обычная глупая сортировка?

void sorting_stupid(int arr[], int arr_size)
{
int i,temp;
i=0;
while (i<(arr_size-1))
{
if (arr[i]>arr[i+1])
{
temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
i=0;
}
else
i++;
}
return;
}

Спасибо.

lxa85
19-06-2009, 00:36
Michael, У вас приведена одна итерация из метода сортировки пузырькем.
Я не уверен, что значит "линейная сортировка"?
Запросы к Google: Сортировка Метод Пузырька (http://www.google.com/search?client=opera&rls=ru&q=%D0%A1%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0+%D0%9C%D0%B5%D1%82%D0%BE%D0%B4+%D0%9F %D1%83%D0%B7%D1%8B%D1%80%D1%8C%D0%BA%D0%B0&sourceid=opera&ie=utf-8&oe=utf-8)
Сортировка Метод Шелла (http://www.google.com/search?hl=ru&client=opera&rls=ru&hs=XcO&q=%D0%A1%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0+%D0%9C%D0%B5%D1%82%D0%BE%D0%B4+%D0%A8 %D0%B5%D0%BB%D0%BB%D0%B0&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=)
алгоритм сортировки массива (http://www.google.com/search?hl=ru&lr=&client=opera&rls=ru&hs=TeO&q=%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC+%D1%81%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2% D0%BA%D0%B8+%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D0%B0&revid=1179438158&ei=TqQ6SryzG83esgby3ei4Cw&sa=X&oi=revisions_inline&resnum=0&ct=broad-revision&cd=1)
Поиск готовых решений на codenet, MSDN, Попробуйте найти BaseC++ - базу алгоритмов C++.

Michael
19-06-2009, 08:24
lxa85, нет, это не одна итерация из пузsрьковой сортировки, это именно так называемая глупая сортировка. Смысл состоит в том, что мы сравниваем текущий элемент массива со следующим. Если следующий больше текущего, то производится обмен значений и возврат в начало цикла. Собственно поэтому и называется "глупая сортировка".

Alan85
19-06-2009, 18:18
это не одна итерация из пузsрьковой сортировки »
имхо это какой то странный вариант пузырьковой сортировки. про глупую первый раз слышу.
А линейная сортировка это когда в массиве ищется самый большой (маленький) элемент и он обменивается с первым элементом массива. Затем тоже самое но ищется не с первого элемента а со второго и меняется с ним же и так далее третий, четвертый до последнего элемента.
пример в итерациях
0. 1 5 0 2 6
1. 6 5 0 2 1
2. 6 5 0 2 1
3. 6 5 2 0 1
4. 6 5 2 1 0

lxa85
19-06-2009, 19:33
Michael, да, согласен, сортировка полная. (Я пропустил оператор i=0; возвращающий в начало)
Alan85, Это Сортировка выбором (http://ru.wikipedia.org/wiki/Сортировка_выбором)
Предлагаю оттолкнуться от Категория:Алгоритмы_сортировки (http://ru.wikipedia.org/wiki/Категория:Алгоритмы_сортировки)




© OSzone.net 2001-2012