Описаны сортировки

1     Сортировка обменом Сортировка с номерами
2     Сортировка пузырьком - не меняя порядок одинаковых чисел
3     Сортировка подсчетом (черпаком) - линейная сортировка целых чисел

*Сортировка по возрастанию*
{quote}_..._
_int a\[10\];_
_..._
_sort(a,a+10);_
_..._{quote}

*Сортировка по убыванию*
{quote}_..._
_int a{_}_\[10\]__;_
_..._
_sort(a,a+10); reverse(a,a+10); // после сортировки реверсируем массив a{_}{quote}

Альтернатива (сортировка по убыванию )
{quote}{_}sort(a,a+10,greater<int>());_{quote}

*Сортировка пузырьком* \- не меняя порядок одинаковых чисел
{quote}_..._
_int a{_}_\[10\]__;_
_..._
_stable_sort(a,a+10);_
_..._{quote}

*Сортировка с номерами*

от 0 до 9

ввод
{quote}{_}int a{_}_\[10\]__,i;_
_for (i=0; i<10; i++) cin >> a{_}_\[i\]__;_{quote}

добавление последней цифрой номера (для двузначных чисел умножаем на 100 и т.д)
{quote}{_}for (i=0; i<10; i++) a{_}_\[i\]__=a{_}_\[i\]__\*10+i;_{quote}

Сортируем
{quote}{_}sort(a,a+10);_{quote}

Выводим 3 первых номера после сортировки (для двузначных чисел %100 - остаток от деления на 100 и т.д)
{quote}{_}for (i=0; i<3; i++) cout << (a{_}_\[i\]__%10)+1 << endl;_{quote}

Альтернатива - использование вектора

Для сортировки с номерами можно сделать так:

{quote}{_}vector<pair<int, int> > A(N);_
_for (int i = 0; i < N; i++)_
cin >> A\[i\].first; \_bq.&nbsp;_A\[i\].second=i;{quote}\\

Выводим 3 первых номера после сортировки
{quote}{_}for (int i = 0; i < 3; i++) cout << A{_}_\[i\]__.second;_{quote}

Пусть имеется массив из N точек с координатами x и y

Массив координат точек X,Y сортируется по возрастанию X,&nbsp;а в случае равенства X - по возрастанию Y
В случае, когда гарантируется, что все X различны,&nbsp;второй массив просто параллельно передвигается&nbsp;никогда не участвуя в сравнениях

Например
{quote}{_}vector<pair<int, int> > A(N);_
_for(int i = 0; i < N; i++)_
_cin >> A{_}_\[i\]__.first >> A{_}_\[i\]__.second;_
_sort(A.begin(), A.end());_{quote}

*Сортировка подсчетом (черпаком)*
{code:title=Cherpak.cpp\|borderStyle=solid}
#include <bits/stdc++.h>using namespace std;
int main()
{
int a[15000],i,n,j;
for (i=0; i<15000; i++) a[i]=0;
cin >> n;
for (i=0; i<n; i++)
{
cin >> j;
a[j]++;
}

for (i=0; i<15000; i++)
if (a[i]) for (j=0; j<a[i]; j++) cout << i;
}
{code}