Форум программистов, компьютерный форум, киберфорум
Наши страницы

Поиск самой быстрой сортировки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Поиск в тексте http://www.cyberforum.ru/cpp-beginners/thread153525.html
Помогите пожалуйста В файле имеется текст. Найти отсутствие пробелов после точки в конце предложения, исправить ошибки и сохранить файл. Предложением считать часть текста, что кончается "." или...
C++ bool в параметрах функции можно ли использовать тип bool в параметрах функции? void draw(char ch, int width, bool vline, bool hline ); или лучше использовать что-то другое? http://www.cyberforum.ru/cpp-beginners/thread153503.html
Невозможно найти или открыть файл pdb C++
я написал по учебнику прогу //Первая программа на C++ #include "stdafx.h" #include <iostream> int main () { std::cout << "Добро пожаловать в С++!\n"; return 0; }
шаблон функции C++
Здрасти. Как правильно написать шаблон ,например, этой функции? int **newmatrix(int row, int col){ int **matrix=new int*; for (int i=0; i<row; ++i) matrix=new int; return...
C++ Паттерны http://www.cyberforum.ru/cpp-beginners/thread153443.html
Пролистал всю главную страницу и решил поставить вопрос в С++ , чем сможите помогите. Суть , изучаю объектно ориентированное проектирование , есть открытые вопросы , куда писать?:)
C++ Простой список в виде массива.Как работать с элементами списка-массива через единую функцию Добрый день!Подсобите,как реализовать Простой список,но не через шаблоны или создание указателей,а как бы в виде массива.(Ну,или ваш вариант через указатели или шаблоны). Кто-то наверно подумает,что... подробнее

Показать сообщение отдельно
Vas-e-na
354 / 413 / 41
Регистрация: 21.06.2010
Сообщений: 1,362
14.07.2010, 13:05
лично я изучая алгоритмы сортировок (коды пришлось самому писать, поэтому выводы могут быть и не совем правильными), выбрал для себя алгоритм Шелла, как самый эффективный алгоритм сортировки.
Если поможет, вот моя реализация
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void CControl::ShellSort(void) 
{ 
         int j; 
         int i; 
         int step=m_array.getN()/2; 
         while (step>0) 
         { 
          for (i=0;i<(m_array.getN()-step);i++) 
          { 
           for(j=i;(j>=0)&&(m_array.compare(j,j+step));j--) 
           { 
            m_array.swap(j+step,j); 
            coutSort++; 
           } 
           coutSort++; 
          } 
          step/=2; 
         } 
}
m_array.getN() - возвращает количество элементов массива (тип int)
m_array.compare(int index1, int index2) - сравнивает элемент № index1 с элементом № index2, возвращает true если первый больше второго иначе false
m_array.swap(int index1, int index2) - меняет элементы № index1 и № index2 местами
m_array.key(int indexTO, CKey* key) - ставит ключ key на место indexTO в массив
Описание дополнительных переменных
CKey* m_array.m_key[int index] - указатель на ключ № index массива
CControl:: long coutSort - счетчик обращения к массиву
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru