powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Сортировка массива
25 сообщений из 25, страница 1 из 1
Сортировка массива
    #32302065
Я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я
Гость
подкиньте алгоритм сортировки массива по возрастанию. ЛЮБОЙ! Очень нужно!
...
Рейтинг: 0 / 0
Сортировка массива
    #32302366
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
обычный пузырек
бегаем по массиву, сравниваем два соседних элемента и упорядочиваем именно их. Проходы по массиву осуществляем до тех пор пока за весь проход не будет поменяно не одного элемента.

ну и еще проще, но эффективность значительно ниже. Ищем максимум, копируем в выходной масив, в оставшихся элементах снова ищем максимум и так далее пока не переберем весь массив. Сложность n! как видим очень высокая уже для 10 элементов
...
Рейтинг: 0 / 0
Сортировка массива
    #32302894
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
www.vbnet.ru/faq/showtopic.asp?id=353
...
Рейтинг: 0 / 0
Сортировка массива
    #32303588
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
Processor писал:Сложность n! как видим очень высокая уже для 10 элементов
Это большая победа советской науки...
...
Рейтинг: 0 / 0
Сортировка массива
    #32303611
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Действует только для .NET
Поскольку массив это объект, то:

Basic:

Dim iSort() as Integer
Dim iArray() as Integer={1,2,3}
ReDim iSort(2)
iSort=iArray.Sort()

C:

int[3] iSort; //в Си размерность = количество элементов!
int[] iArray={1,2,3};
iSort=iArray.Sort()

Согласись это проще, чем метод пузырька.
...
Рейтинг: 0 / 0
Сортировка массива
    #32303776
c127
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 StarWind

Все правильно, только в текст вкралась небольшая ошибочка: не n!, а n*(n+1)/2. Для 10 элементов ничего страшнrо не произойдет, руками можно посчитать, что ты возможно делал в младших классах на урокх родной речи, выстраивая слова в алфавитном порядке. Потому что там не произведение, а сумма.

2 *

Это еще не победа. Вот где настоящая победа:

>Действует только для .NET
>Поскольку массив это объект, то:
>...
>int[3] iSort; //в Си размерность = количество элементов!
>int[] iArray={1,2,3};
>iSort=iArray.Sort() ...
>
>Согласись это проще, чем метод пузырька.

Дядя Билли может спать спокойно, достойную смену вырастил. Такие не подведут.
...
Рейтинг: 0 / 0
Сортировка массива
    #32303785
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
c127
упс, сорри действительно, там сложение же идет, сорри, лапухнулся :))
...
Рейтинг: 0 / 0
Сортировка массива
    #32303938
Фотография cyc10ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
//в Си размерность = количество элементов!

надо же, какая новость
...
Рейтинг: 0 / 0
Сортировка массива
    #32303952
OldPferd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кнут том 3 - "Сортировка и Поиск"
Насколько помню, "пузырек" один из самых малоэффективных
...
Рейтинг: 0 / 0
Сортировка массива
    #32304513
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Я:
QuickSort, если простой алгоритм не устраивает:
http://www.websib.ru/noos/informatika/lit/jilin.htm

VB позволяет использовать рекурсию.
...
Рейтинг: 0 / 0
Сортировка массива
    #32305083
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Max Pro" писал:
Код: plaintext
1.
2.
3.
int[ 3 ] iSort; //в Си размерность = количество элементов!
int[] iArray={ 1 , 2 , 3 };
iSort=iArray.Sort() 



хе-хе-хе!! Это круто! Я тоже так могу. Даже еще проще.

Код: plaintext
1.
 cat file_with_array | sort 


Только это не алгоритм сортировки.
...
Рейтинг: 0 / 0
Сортировка массива
    #32305711
Фотография cyc10ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хрен: в садик иди

sort < file_with_array
...
Рейтинг: 0 / 0
Сортировка массива
    #32305808
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я смотрю критики много, много слов не по делу... но вот только алгоритм никто другой не предлагает... Зато разговоров...
...
Рейтинг: 0 / 0
Сортировка массива
    #32306653
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
Посмотри здесь http://www.avhohlov.narod.ru/p2100ru.htm
Если массив велик, квадратичные алгоритмы не должны рассматриваться.
А критика справедлива
...
Рейтинг: 0 / 0
Сортировка массива
    #32306844
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
согласен с оценкой сложности алгоритма, но "Насколько помню, "пузырек" один из самых малоэффективных" при том что человек ничего не предложил кроме ссылки на книгу . И при том что если мне не изменяет память, то скорость сортировки в среднем расна у всех быстрых алгоритмал и отличия проявляться начинаются при определенных условиях...
...
Рейтинг: 0 / 0
Сортировка массива
    #32307046
Фотография cyc10ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>при том что человек ничего не предложил кроме ссылки на книгу
Кнут ой-ля-ля! в че совсем что ли
...
Рейтинг: 0 / 0
Сортировка массива
    #32307124
nik_x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://algolist.manual.ru/sort/index.php
...
Рейтинг: 0 / 0
Сортировка массива
    #32308369
Фотография cyc10ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, на алголист есть ошибки в одном из алгоритмов сортировок
устроит вас исходник на C для heapsort?
...
Рейтинг: 0 / 0
Сортировка массива
    #32308703
Фотография cyc10ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот ссылка.
в книге приведены основные алгоритмы сортировок а также есть исходный код
http://sx.openbsd.ru/doc/books/C++%20Footprint%20and%20Performance%20Optimization.zip
...
Рейтинг: 0 / 0
Сортировка массива
    #32317788
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://relib.com/articles/article.asp?id=197
Статья "Фундаментальные основы VB. Списки: сортировка, поиск, удаление".
...
Рейтинг: 0 / 0
Сортировка массива
    #32318181
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cyc10ne писал:
Хрен: в садик иди
sort < file_with_array


Сам в таком случае иди туда

sort filename
...
Рейтинг: 0 / 0
Сортировка массива
    #32318588
Фотография cyc10ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ничего подобного, ты с перенаправлением написал - я тебе привел
менее ресурсоемкий аналог именно с перенаправлением.
...
Рейтинг: 0 / 0
Сортировка массива
    #32319359
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень плохо, что приходится обьяснять задним числом, ну видимо придется.

Уважаемы циклон, Когда я писал ответ, имелось в виду, что iSort=iArray.Sort() это _не_ алгоритм сортировки. Это вызов метода, который отсортирует iArray. И в качестве примера я привел
cat file |sort. Нет никакой принципиальной разницы,

cat file | sort, или

sort < file или

sort file или вообще

exec <file
sort

Я точно также мог привести в качестве примера, скажем, библиотечную функцию qsort() для С.
Поэтому ваш ответ о том, что должно быть sort <filename , говорит либо о том, что вы _не_ _поймали_ основную мысль моего ответа, либо просто хотите покрасоваться. Скорее второе, судя по упоминанию садика.
...
Рейтинг: 0 / 0
Сортировка массива
    #32319697
Фотография cyc10ne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если честно то первое
у меня уже давно не тот возраст чтобы красоваться
...
Рейтинг: 0 / 0
Сортировка массива
    #32325660
Фотография Циничный Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаф-гаф-гаф... :о)

Просили же - ЛЮБОЙ алгоритм сортировки. Пузырек вполне годится, потому как до безобразия прост и его помнят ну практически все.

Если нужен ЭФФЕКТИВНЫЙ алгоритм - открываем того же Кнута и смотрим. Кнут, кстати, в любом хорошем книжном магазине продается и стоит доступно. Я вот например не помню в деталях алгоритма быстрой сортировки - и что? На то справочники и придуманы.

Если совсем озабочены эфективностью работы с большими данными - я бы еще подумал о том, в каком виде эти данные хранить. Ибо встроенные массивы суть структура не очень подходящая и решения в духе

Код: plaintext
1.
2.
3.
Dim iSort() as Integer 
Dim iArray() as Integer={ 1 , 2 , 3 } 
ReDim iSort( 2 ) 
iSort=iArray.Sort() 


на канают, бо доступ по индексу в массиве фиксированной размерности не самое эффективное решение если в первую очередь интересует значения элементов.

...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Сортировка массива
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]