Другие языки программирования и технологии
какие алгоритмы сортировки есть на С# (С++)?
кроме пузырьковой и методом прямого выбора
Сортировка Шейкера более быстрая и оптимизированная, чем сортировка пузырьком, по сложности я бы не сказал что они отличаются.
#include <iostream>
using namespace std;
//========================================================
int array[100];
//========================================================
void Sort(int col)
{
int trash=0;
bool f=true;
for (int i=1; (i<=col) && (f=true) ; i++)
{
f=false;
for (int j=i; j<=col-i; j++) // проходим с лева на право
{
if (array [j]>array [j+1]) // если число слева больше числа
{
trash=array[j]; // справа, то меняем местами
array [j]=array [j+1]; // справа собираются большие числа
array [j+1]=trash;
f=true;
}
}
for (int j=col-i-1; j>i ; j--) // проходим с права на лево
{
if (array [j]<array[j-1])> <<" ";
cout << endl;
}
//========================================================
int main()
{
int col_el;
cout << " Enter length of array"<< endl;
cin >> col_el;
cout << " Enter array elements"<<endl;>> array[n];
}
Sort(col_el);
cout << "Result is :"<<endl;>> col_el;
return 0;
}
Ещё лучше сортировка вставками.
float *insert(float *s, int m, int n)
{
int i,j,k;
float aux;
for (i=m+1; i<=n; i++) { aux="s;" for (k="m;" k<="i" && s[k]=k; j--) s[j+1]=s[j];
s[k]=aux;
}
return(a);
}
Для каждого случая свой метод.
#include <iostream>
using namespace std;
//========================================================
int array[100];
//========================================================
void Sort(int col)
{
int trash=0;
bool f=true;
for (int i=1; (i<=col) && (f=true) ; i++)
{
f=false;
for (int j=i; j<=col-i; j++) // проходим с лева на право
{
if (array [j]>array [j+1]) // если число слева больше числа
{
trash=array[j]; // справа, то меняем местами
array [j]=array [j+1]; // справа собираются большие числа
array [j+1]=trash;
f=true;
}
}
for (int j=col-i-1; j>i ; j--) // проходим с права на лево
{
if (array [j]<array[j-1])> <<" ";
cout << endl;
}
//========================================================
int main()
{
int col_el;
cout << " Enter length of array"<< endl;
cin >> col_el;
cout << " Enter array elements"<<endl;>> array[n];
}
Sort(col_el);
cout << "Result is :"<<endl;>> col_el;
return 0;
}
Ещё лучше сортировка вставками.
float *insert(float *s, int m, int n)
{
int i,j,k;
float aux;
for (i=m+1; i<=n; i++) { aux="s;" for (k="m;" k<="i" && s[k]=k; j--) s[j+1]=s[j];
s[k]=aux;
}
return(a);
}
Для каждого случая свой метод.
Какую напишешь ---та и будет. А вообще есть стандартная функция быстрой сортировки.
#include <stdlib.h>
void qsort(void *base, size_t nmemb, size_t size, int(*compar)(const void *, const void *));
http://www.opennet.ru/man.shtml?topic=qsort&category=3&russian=0
#include <stdlib.h>
void qsort(void *base, size_t nmemb, size_t size, int(*compar)(const void *, const void *));
http://www.opennet.ru/man.shtml?topic=qsort&category=3&russian=0
самая простая - это сортировка пузырьком :
делаеш массив чисел
Проходиш от первого элемента до последнего и сравниваеш соседние элементы.
Если слева больше, то меняеш их местами, таким образом, справа всегда будет
больший
=============
Будет примерно так
=
#include <iostream>
using namespace std;
int array[100];
void Sort(int col)
{
int trash=0;
for (int i=1; i<=col ; i++)
{
for (int j=1; j<=col-i; j++)
{
if (array [j]>array [j+1])
{
trash=array[j];
array [j]=array [j+1];
array [j+1]=trash;
делаеш массив чисел
Проходиш от первого элемента до последнего и сравниваеш соседние элементы.
Если слева больше, то меняеш их местами, таким образом, справа всегда будет
больший
=============
Будет примерно так
=
#include <iostream>
using namespace std;
int array[100];
void Sort(int col)
{
int trash=0;
for (int i=1; i<=col ; i++)
{
for (int j=1; j<=col-i; j++)
{
if (array [j]>array [j+1])
{
trash=array[j];
array [j]=array [j+1];
array [j+1]=trash;
Похожие вопросы
- Изучил несколько простых алгоритмов сортировки, осталось изучить быструю и слияние, нужно ли вообще писать эти алгоритмы
- Говорят что готовые алгоритмы сортировок и поиска мало эффективны и не пригодны в использовании
- Теория алгоритмов. Алгоритмы сортировки.
- Самый оптимальный алгоритм сортировки в плане производительности
- Проблема с алгоритмом быстрой сортировкой С++
- Не могу сообразить каким алгоритмом задать сортировку, подскажите, пожалуйста
- Сортировки, язык Си.
- C++ Сортировка в сортировке вектора экземпляров структуры
- Сортировка простыми вставками.
- Как написать макрос для Word 2003 чтобы выполнял сортировку чисел в квадратных скобках?