Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Что нужно подтянуть? 
:(
    Опции темы
ArniLand
Дата 20.6.2011, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 17.8.2008

Репутация: нет
Всего: нет



За два курса в университете понял, что я ни черта не умею программировать. Сейчас хочу решить эту проблему. Для думаю нужно выяснить, что мне нужно повторить. Алгоритмическое мышление хромает и знания языка хромают. Вот выкладываю задачку которую пытался решить. Условие задачи: Найти количество различных элементов в массиве. Задачки решена не правильно, но пока я не могу понять как решить. С помощью этой задачи хочу выявить свои пробелы и получить рекомендации как их устранить. Заранее благодарен. 

Код

#include <iostream>

using namespace std;

int main()

{
       const int size = 10;

        int arr[size] = {10, 1, 1, 3, 1, 3, 1, 8, 9, 2};

        int count = 0;
        for (int i = 0; i < size; ++i)

        {

                for(int j = size-1; j > i; --j)

                {

                        if (arr[i] != arr[j])

                        {

                                count++;

                            break;

                        }

                        else

                                --j;
                }

        }



        cout << count <<endl;

        return 0;
}


Это сообщение отредактировал(а) ArniLand - 20.6.2011, 21:57
PM MAIL   Вверх
triclosan
Дата 20.6.2011, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 515
Регистрация: 18.8.2006

Репутация: 2
Всего: 12



Цитата(ArniLand @  20.6.2011,  21:36 Найти цитируемый пост)
Вот выкладываю задачку

так а где?
PM MAIL   Вверх
ArniLand
Дата 20.6.2011, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 17.8.2008

Репутация: нет
Всего: нет



Извините, исправил первый пост.
PM MAIL   Вверх
fish9370
Дата 20.6.2011, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: 1
Всего: 1



эта задачка интереснее решается с помощью хеш-таблицы.. привожу самый приметивный пример:

Код


int arr[size] = {10, 1, 1, 3, 1, 3, 1, 8, 9, 2}; 
int *arr_res = NULL;

int max = get_max(arr); /* max = 10, максимальный элемент массива */

if (!(arr_res = calloc(sizeof(*arr_res), max + 1)) { /* просто выделение памяти для нового массива */
          printf("%s\n", "no memory");
          exit(1);
}

int i;
for (i = 0; i < size; ++i) {
          arr_res[arr[i]]++; /* вот тут та самая фишка */
}

free(arr_res);



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

сорри что оффтоп и на Си.. 

Это сообщение отредактировал(а) fish9370 - 20.6.2011, 22:05


--------------------
undefined
PM MAIL WWW ICQ   Вверх
triclosan
Дата 20.6.2011, 22:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 515
Регистрация: 18.8.2006

Репутация: 2
Всего: 12



Код

#include <iostream> 
#include <vector> 
#include <algorithm> 
#include <iterator>

int main() 
{ 
    const int size = 10;
    int arr[size] = {10, 1, 1, 3, 1, 3, 1, 8, 9, 2};
    std::vector<int> v(arr, arr+10);
    std::sort( v.begin(), v.end() );
    std::vector<int>::iterator end = std::unique( v.begin(), v.end() );
    std::copy( v.begin(), end, std::ostream_iterator<int>(std::cout, " ") );
} 


Это сообщение отредактировал(а) triclosan - 20.6.2011, 22:26
PM MAIL   Вверх
500mhz
Дата 20.6.2011, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: 1
Всего: 14



fish9370
старо))) может памяти не хватить


--------------------

PM MAIL ICQ   Вверх
fish9370
Дата 20.6.2011, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: 1
Всего: 1



Цитата(500mhz @  20.6.2011,  22:54 Найти цитируемый пост)
может памяти не хватить


я же говорю, что нужно хеш улучшить.. сделать перемешаную таблицу..  smile 

пример учебный.. зато как изящно..

Это сообщение отредактировал(а) fish9370 - 20.6.2011, 22:57


--------------------
undefined
PM MAIL WWW ICQ   Вверх
500mhz
Дата 20.6.2011, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: 1
Всего: 14



fish9370 
при чем тут определение "хеш"? 


--------------------

PM MAIL ICQ   Вверх
fish9370
Дата 20.6.2011, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: 1
Всего: 1



Цитата(500mhz @  20.6.2011,  22:58 Найти цитируемый пост)
при чем тут определение "хеш"? 


набери в google: таблица с вычисляемым входом


--------------------
undefined
PM MAIL WWW ICQ   Вверх
500mhz
Дата 20.6.2011, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: 1
Всего: 14



Код

inc dword [esi+ebp]

вот это изящно , где esi= начала массива arr_res, ebp = элемент массива arr
но это нифига не хеш ))) 


--------------------

PM MAIL ICQ   Вверх
Qu1nt
Дата 20.6.2011, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 13.1.2007

Репутация: нет
Всего: 50



Код

#include <list>
#include <iostream>
#include <iterator>

int main()
{
    int data[] = {1, 2, 3, 3, 2, 1};
    std::list<int> list(data, data + sizeof(data) / sizeof(int));
    list.sort();
    list.unique();
    std::copy(list.begin(), list.end(), std::ostream_iterator<int>(std::cout, " "));
}

PM MAIL   Вверх
fish9370
Дата 20.6.2011, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: 1
Всего: 1



500mhz, ты тему читал? я уже и извинился за оффтоп.. и рассказал как нужно сделать.. что нужно доработать прогу и использовать перемешаную таблицу - специально для тебя писал..

а ты приводишь код на асме? мужик, че ты там куришь?  smile 


--------------------
undefined
PM MAIL WWW ICQ   Вверх
500mhz
Дата 20.6.2011, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: 1
Всего: 14



fish9370
 какая разница на чем код ? ))) тут главное алгоритм )))


--------------------

PM MAIL ICQ   Вверх
fish9370
Дата 20.6.2011, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: 1
Всего: 1



Цитата(500mhz @  20.6.2011,  23:38 Найти цитируемый пост)
какая разница на чем код ? ))) тут главное алгоритм )))


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

как поведет себя твой алгоритм при больших числах? сколько памяти понадобится?


--------------------
undefined
PM MAIL WWW ICQ   Вверх
500mhz
Дата 20.6.2011, 23:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: 1
Всего: 14



4 gb в худшем варианте )))


--------------------

PM MAIL ICQ   Вверх
fish9370
Дата 20.6.2011, 23:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: 1
Всего: 1



Цитата(500mhz @  20.6.2011,  23:52 Найти цитируемый пост)
4 gb в худшем варианте )))


всего лишь?

я использую перемешанную таблицу и сведу размер результирующего массива к размеру входного.. для любых чисел..

а тебе слабо?  smile 


--------------------
undefined
PM MAIL WWW ICQ   Вверх
500mhz
Дата 20.6.2011, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: 1
Всего: 14



да запросто ) как два байта переслать


--------------------

PM MAIL ICQ   Вверх
fish9370
Дата 21.6.2011, 00:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: 1
Всего: 1



Цитата(500mhz @  20.6.2011,  23:59 Найти цитируемый пост)
как два байта переслать


докажешь?  smile 


--------------------
undefined
PM MAIL WWW ICQ   Вверх
500mhz
Дата 21.6.2011, 00:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: 1
Всего: 14



на пиво?  smile 


--------------------

PM MAIL ICQ   Вверх
fish9370
Дата 21.6.2011, 00:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: 1
Всего: 1



Цитата(500mhz @  21.6.2011,  00:04 Найти цитируемый пост)
на пиво?   


если ты из Москвы, то давай на пиво..  smile 


--------------------
undefined
PM MAIL WWW ICQ   Вверх
500mhz
Дата 21.6.2011, 00:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: 1
Всего: 14



не я в киеве )


--------------------

PM MAIL ICQ   Вверх
fish9370
Дата 21.6.2011, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: 1
Всего: 1



вобщем если есть интерес и время, то сделай.. вообще было бы прикольно посмотреть это на асме..  smile 


--------------------
undefined
PM MAIL WWW ICQ   Вверх
volatile
Дата 21.6.2011, 01:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 16
Всего: 85



Горячие финские парни, не спорьте.

Мой вариант.
В СТЛ есть мап. Он как будто специально сделан для такой задачи.
Код

std::map <int,int> mp;
for (int i=0; i<size; ++i) 
   mp [arr[i] ] ++;

Вот собственно и всё! Осталось только вывести количество каждого значения.
Код

for (std::map <int,int>::iterator i = mp.begin (); i!=mp.end (); ++i)
   cout << i->first << " - " << i->second << std::endl;

http://liveworkspace.org/code/2c2bee1993a4...69b3cb5bc84161c

Это сообщение отредактировал(а) volatile - 21.6.2011, 01:16
PM MAIL   Вверх
fish9370
Дата 21.6.2011, 07:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: 1
Всего: 1



Цитата(volatile @  21.6.2011,  01:12 Найти цитируемый пост)
В СТЛ есть мап. Он как будто специально сделан для такой задачи


да.. он для такой задачи.. вообще я этому научился еще на PHP, там это развито еще круче, я специально не стал этого приводить.. 



--------------------
undefined
PM MAIL WWW ICQ   Вверх
500mhz
Дата 21.6.2011, 07:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: 1
Всего: 14



volatile
да мы уже не о том спорим )))
если максимальный элемент массива dword 0xffffffff то памяти может не хватить 


--------------------

PM MAIL ICQ   Вверх
asmdzen
Дата 21.6.2011, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



**


Профиль
Группа: Участник
Сообщений: 345
Регистрация: 28.11.2010

Репутация: 3
Всего: 5



500mhz, вообще то если просто перевести код fish9370 на асм то получится что он просто будет жрать много памяти особенно при отрицательных значениях в массиве.

Цитата(500mhz @  20.6.2011,  23:27 Найти цитируемый пост)

Код

inc dword [esi+ebp]



разве не правильней будет
Код

inc dword [ebp+esi] ; где база именно ebp ))


Код

int main()
{
       const int size = 10;
        int arr[size] = {10, 1, 1, 3, 1, 3, 1, 8, 9, 2};
        int count = 0;
        for (int i = 0; i < size; ++i)
        {
                for(int j = i+1; j < size; ++j)
                {
                        if (arr[i] == arr[j])
                        {
                            count++; // считываем количество повторений
                            break;
                        }
                }
        }
        cout << size - count <<endl; // афишируем количество различных элементов
        return 0;
}


вроде это то что нужно автору

Это сообщение отредактировал(а) asmdzen - 21.6.2011, 09:51
PM MAIL   Вверх
Teleport
Дата 21.6.2011, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 5.7.2008
Где: Прибалтика

Репутация: нет
Всего: 6



asmdzen, а что по-твоему является различными элементами массива?
На мою логику так: 10, 8, 9, 2. 
Т. е. всего 4 различных элемента. А твоя программа выводит 6.
И второй цикл ты начинаешь с i + 1, а я все же думаю, что нужно сравнивать со всеми элементами массива, кроме самого себя. Например, так - дошел ты до последней единички в массиве и сравниваешь ее с 8, 9, 2. И получается, что она различный элемент? Не думаю.

Это сообщение отредактировал(а) Teleport - 21.6.2011, 11:54


--------------------
user posted image
user posted image 
PM MAIL   Вверх
asmdzen
Дата 21.6.2011, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



**


Профиль
Группа: Участник
Сообщений: 345
Регистрация: 28.11.2010

Репутация: 3
Всего: 5



Teleport, различные элементы я понимаю 10, 8, 9, 3, 2, 1, то есть все элементы без повторов
ведь не сказано же "не повторяющихся" элементов. может я неправильно понял условие. покажите как будет правильно по вашему.
PM MAIL   Вверх
Teleport
Дата 21.6.2011, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 5.7.2008
Где: Прибалтика

Репутация: нет
Всего: 6



В условии сказано 
Цитата

Найти количество различных элементов в массиве

По-моей логике элементы различные - это 10, 8, 9, 2.  А элементы 3 и 1 повторяются и не являются различными.


--------------------
user posted image
user posted image 
PM MAIL   Вверх
asmdzen
Дата 21.6.2011, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



**


Профиль
Группа: Участник
Сообщений: 345
Регистрация: 28.11.2010

Репутация: 3
Всего: 5



Teleport, т.е. различных != уникальных?
по моей логике 10, 8, 9, 3, 2, 1 все различные между собой, остальные уже повторы ))
PM MAIL   Вверх
Teleport
Дата 21.6.2011, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 5.7.2008
Где: Прибалтика

Репутация: нет
Всего: 6



asmdzen, не знаю кто из нас прав  smile
Твою логику понял. 


--------------------
user posted image
user posted image 
PM MAIL   Вверх
ShadowC
Дата 3.10.2011, 00:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 23.6.2011

Репутация: нет
Всего: нет



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

Код

#include <iostream>

using namespace std;

int main()
{
       const int size = 10;
        int arr[size] = {10, 1, 1, 3, 1, 3, 1, 8, 9, 2};
        int count = 0;
        int g=0;

for(int i=0;i<size;i++){
g=0;
for(int j=i-1;0<=j;j--){
if(arr[i]==arr[j])
g=1;
}
if(g!=1)
count++;         
}
cout<<count;
        system("PAUSE");
        return 0;
}


что скажите по поводу такого алгаритма решения
алгоритм построен на том,что программа берет массив и проверяет все элементы массива предшествующие этому массива и если не находит такого-же то инкрементирует счетчик,наверное можно было решить более красиво с таким же алгаритмом,у меня вышло весьма неуклюже

Это сообщение отредактировал(а) ShadowC - 3.10.2011, 00:43
PM MAIL   Вверх
volatile
Дата 3.10.2011, 01:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 16
Всего: 85



Цитата(ShadowC @  3.10.2011,  00:38 Найти цитируемый пост)
что скажите по поводу такого алгаритма решения

ShadowC, время выполнения вашего алгоритма N^2.
Чтобы почувствовать нужно взять большой массив.
Если в массиве миллион элементов, то понадобится порядка 10^12 итераций.

Другими словами программа будет работать целый день, тогда как можно все сделать за 1 минуту.

PM MAIL   Вверх
ShadowC
Дата 3.10.2011, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 23.6.2011

Репутация: нет
Всего: нет



Цитата(volatile @ 3.10.2011,  01:21)
Цитата(ShadowC @  3.10.2011,  00:38 Найти цитируемый пост)
что скажите по поводу такого алгаритма решения

ShadowC, время выполнения вашего алгоритма N^2.
Чтобы почувствовать нужно взять большой массив.
Если в массиве миллион элементов, то понадобится порядка 10^12 итераций.

Другими словами программа будет работать целый день, тогда как можно все сделать за 1 минуту.

ну наверное можно даже с моими знаниями(8-ая глава книги дейтлов),но я сам обучаюсь без учителя,поэтому у меня сейчас не стоит вопрос об эффективности программ,а все силы направлены на то что бы решить задачу,думаю когда поднатаскаюсь до нормального уровня там можно будет и быстродействие подумать...

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

Это сообщение отредактировал(а) ShadowC - 3.10.2011, 15:07
PM MAIL   Вверх
bsa
Дата 3.10.2011, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата(ShadowC @  3.10.2011,  16:04 Найти цитируемый пост)
P.S. а вообще есть такая идея,не знаю поможет ли - вначале отсортировать массив и в отсортированном массиве такой алгоритм пойдет просто мгновенно,потому что повторяющиеся элементы будут стоять рядом и шаг для проверки любого элемента массива будет равен одному
Этот вариант был давно уже предложен. Правда, он тоже не особо оптимален из-за использования двусвязного списка.
Код
#include <iostream>
#include <iterator>
#include <algorithm>

int main()
{
    int data[] = {1, 2, 3, 3, 2, 1};
    std::sort(data, data + sizeof(data)/sizeof(*data));
    std::copy(data, std::unique(data, data + sizeof(data)/sizeof(*data)), std::ostream_iterator<int>(std::cout, " "));
    return 0;
}



Это сообщение отредактировал(а) bsa - 3.10.2011, 15:42
PM   Вверх
ShadowC
Дата 3.10.2011, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 23.6.2011

Репутация: нет
Всего: нет



Цитата(bsa @ 3.10.2011,  15:33)
Цитата(ShadowC @  3.10.2011,  16:04 Найти цитируемый пост)
P.S. а вообще есть такая идея,не знаю поможет ли - вначале отсортировать массив и в отсортированном массиве такой алгоритм пойдет просто мгновенно,потому что повторяющиеся элементы будут стоять рядом и шаг для проверки любого элемента массива будет равен одному
Этот вариант был давно уже предложен.

я пренципиально не читал тему и думал сам,а то так не интересно...
кстате bsa ты опытный в этом деле у меня к тебе вопрос ну и ко всем кто на него может ответить,какой самый быстрый алгоритм сортировки?

Это сообщение отредактировал(а) ShadowC - 3.10.2011, 15:52
PM MAIL   Вверх
SolRus
  Дата 3.10.2011, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 6.8.2011

Репутация: нет
Всего: нет



хоть вопрос не мне, все равно кой чего отпишу:
Цитата(ShadowC @ 3.10.2011,  15:37)
какой самый быстрый алгоритм сортировки?

если сильно интересует эта тема читай книгу "Искусство_программирования" Дональда Кнута, том3

если побыстрому то на вики есть кое-что

я точно незнаю какой, оно вроде зависит от того сколько элементов
PM MAIL Skype   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.2383 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.