Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Val Krigan                           2:5020/400     08 Apr 2003  08:33:10
 To : Ilya Teterin
 Subject : Re: Сортировка
 -------------------------------------------------------------------------------- 
 
 "Ilya Teterin" wrote
 
 > Представляю свое кривое творение:
 >
 > #include <vector>
 
 ............
 
 > void sort_node(elementtype_node & node){
 > qsort(&node[0],node.size(),sizeof(elementtype),&sortfunc);
 > };
 
 > int main(){
 >
 > node_vector nodes(hash_space);
 >
 > bool firsttime=true;
 >
 > int i,j;
 >
 > min=0;max=1000; // hardcoded ;)
 >
 > #define X 1000000
 >
 > for(i=0;i<X;i++){
 > double el=(rand()%10000)/100.0;
 >
 > addelement(nodes,el);
 >
 > }
 >
 > for(i=0;i<nodes.size();i++){
 > sort_node(nodes[i]);
 > for(j=0;j<nodes[i].size();j++){
 > // printf("%f\n",nodes[i][j]);
 > };
 > };
 >
 > return 0;
 >
 > };
 >
 > Комментарии: функция hash_func выбирается в зависимости от конкретной
 
 задачи,
 
 > должна возвращать значение [0..hash_space-1] и удовлетворять условию a1<a2
 =>
 > hash_func(a1)<=hash_func(a2). В зависимости от того, насколько хорошо ее
 > удастся выбрать и размера hash_space, сложность сортировки изменяется от
 > qsort-овской (наихудший случай -  все элементы попали в один hash_node) до
 
 забываешь, что у тебя не одна сортировка.
 
 > O(n) (наилучший случай - каждый hash_node содержит не более одного
 
 элемента).
 
 комментарий:   =8-0    УЖАС!!!
 Почему бы не проще
 
 // счетчик, инициализируемый нулем
 struct  intZ{
 int n;
 intZ() : n(0) {}
 void operator ++() {n++;}
 };
 
 // получаем указатель и размер
 void sort_it(float *p, int N){
 hash<float,intZ>    cont;
 
 // заносим, сложность O(N)
 for(i=0; i<N; i++)
     cont[p[i]].second++;
 // к этому моменту в контейнере содержатся все элементы и кол-во каждого в
 исходном массиве
 // осталось их отсортировать и распечатать, используем тот же массив
 
 my_copy(p,cont.begin(),cont.end()); // копируем туда все float, ключи
 
 sort(p,p+cont.size()); // сортируем, размер алфавита, ОДИH РАЗ
 
 // печатаем
 for(i=0; i<cont.size; i++)
     for(j=0;j<cont[p[i]].second; j++)
         cout << p[i];
 
 // УСЕ
 
 ЗЫ: Это не компилируемый код, просто для демонстрации ключевых моментов.
 --- ifmail v.2.15dev5
  * Origin: Demos online service (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Сортировка   Alexandr Zykhov   04 Apr 2003 04:45:04 
 Re: Сортировка   Oleg Khovayko [SPAM trap - don\'t re   04 Apr 2003 04:44:36 
 Сортировка   Artur Mogozov   04 Apr 2003 06:02:10 
 Сортировка   Ilya Teterin   04 Apr 2003 06:59:19 
 Сортировка   Artur Mogozov   05 Apr 2003 08:57:00 
 Сортировка   Ilya Teterin   05 Apr 2003 08:46:33 
 Сортировка   Mity Usanov   05 Apr 2003 22:35:45 
 Сортировка   Artur Mogozov   06 Apr 2003 07:37:20 
 Сортировка   Yuri Kvashonkin   08 Apr 2003 15:02:14 
 Сортировка   Alex Semenyaka   07 Apr 2003 21:44:38 
 Сортировка   Alex Astafiev   08 Apr 2003 09:30:19 
 Сортировка   Alex Semenyaka   09 Apr 2003 14:32:54 
 Сортировка   Alex Astafiev   04 Apr 2003 15:38:13 
 Сортировка   Ilya Teterin   07 Apr 2003 16:37:01 
 Сортировка   Andrey Dashkovsky   07 Apr 2003 07:06:22 
 Сортировка   Ilya Teterin   04 Apr 2003 06:57:18 
 Сортировка   Mity Usanov   04 Apr 2003 21:10:36 
 Re: Сортировка   Vladislav Gusev   05 Apr 2003 17:27:21 
 Re: Сортировка   Val Krigan   07 Apr 2003 08:25:34 
 Re: Сортировка   Vladislav Gusev   07 Apr 2003 19:45:29 
 Re: Сортировка   Val Krigan   08 Apr 2003 00:45:16 
 Re: Сортировка   Ilya Teterin   08 Apr 2003 07:47:57 
 Re: Сортировка   Val Krigan   08 Apr 2003 08:33:10 
 Re: Сортировка   Ilya Teterin   08 Apr 2003 09:06:12 
 Re: Сортировка   Val Krigan   08 Apr 2003 09:11:19 
 Re: Сортировка   Ilya Teterin   08 Apr 2003 09:29:45 
 Re: Сортировка   Val Krigan   08 Apr 2003 09:45:08 
 Re: Сортировка   Ilya Teterin   08 Apr 2003 10:41:01 
 Сортировка   Alex Astafiev   08 Apr 2003 09:37:12 
 Сортировка   Ilya Teterin   09 Apr 2003 07:15:08 
 Re: Сортировка   Vladislav Gusev   09 Apr 2003 08:37:44 
 Сортировка   Moderator of RU.ALGORITHMS   09 Apr 2003 17:45:12 
 Сортировка   Stanislav Shwartsman   09 Apr 2003 21:09:32 
 Сортировка   Alex Astafiev   10 Apr 2003 18:55:48 
 Сортировка   Yuri Kvashonkin   07 Apr 2003 00:02:56 
 Сортировка   Alex Astafiev   04 Apr 2003 15:31:02 
 Сортировка   Ilya Teterin   07 Apr 2003 16:43:12 
 Re: Сортировка   Dmitriy Iassenev   10 Apr 2003 13:30:57 
 Re: Сортировка   Sergey Andrianov   08 May 2003 09:02:12 
Архивное /ru.algorithms/657742266538.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional