Сортировать с помощью быстрой сортировки

  • Автор темы ALDon
  • Дата начала
A

ALDon

#1
Нужно сортировать последовательность цисел через быструю сортировку или через сортировку слиянием.
На первую строку вводим количество чисел,которые будем сортировать,а на вторую последовательность чисель.
Вывод должен быть таким
примерно так

вводим
6
1 3 2 1 2 3
выводит

1 1 2 2 3 3


Код:
#include<iostream>
using namespace std;
int main(){
int a;
int b[10000];
cin>>a;
for(int i=0;i<a;i++)
cin>>b[i];

//.....быстрая сортировка или слиянием

return 0;}
вот код которую я могу написать,я не знаю как используются эти сортировки если можете пишите код с комментариями
 

DarkKnight

Well-known member
01.08.2010
653
0
#2
rrrFer, угу :))) А потом у 20 из 30 стунедтов один алгоритм :) А у 10+ из этих 20 даже переменные одинакового названия :)))

З.Ы. Вот препадам наверное щас веселуха :)

C++:
#include <iostream>
#include <time.h>

using namespace std;

int compare (const void *arg1, const void *arg2) //Функция для быстрой сортировки (qsort)
{
return *(int*)arg1 - *(int*)arg2;
}
void main(void)
{
setlocale(LC_ALL,"Russian"); //Добавил для локали
int a;
int b[10000];
srand(time(NULL)); //Введем генератор случайно величины
cout<<"Введите размерность массива: "; //Диалог добавил просто так...
cin>>a;

for(int i=0;i<a;i++)
{
//cin>>b[i]; //Заполнять лень поэтому обойдемся случ. величинами
b[i] = rand()%200-100;// от -99.. До 99
cout<< b[i]<<"\t";
}

cout<<"Отсортированный массив:"<<endl;
qsort(b,a,sizeof(int),compare); //Отсортируем
cout<<endl;
for(int i=0;i<a;i++) //Выведим отсортированный массив
{
cout<< b[i]<<"\t";
}

}
 

DarkKnight

Well-known member
01.08.2010
653
0
#3
угу и никто не понимает как что работает )). ИМХО преподаватели специально дают каждому студенту индивидуальное задание, чтобы хоть какое-то разнообразие работ было )
Это что бы преподаватель мог оторваться на студентах за проблемы которые у него дома ;-)))
Преподы тоже люди - и тоже должны вымещать гнев ;-)))))