
- •Оглавление
- •1. Вычисление нод алгоритмом Евклида
- •2. Нахождение нод и нок
- •3. Вычисление факториала
- •4. Вычисление факториала рекурсивно
- •5. Вычисление биноминального коэффициента
- •7. Разложение целого числа на сумму биноминальных коэффициентов
- •8. Сумма некоторых элементов массива
- •9. Модификация массива данных. Вариант 1.
- •10. Модификация массива данных. Вариант 2.
- •11. Работа с числами массива
- •12. Поиск совпадений чисел в массиве
- •13. Растяжение списка и вставка, удаление из списка и сжатие. Вариант 1.
- •14. Растяжение списка и вставка, удаление из списка и сжатие. Вариант 2.
- •15. Подсчет количества цифр в целом числе
- •16. Проверка целого числа на симметрию цифр. Вариант 1.
- •17. Проверка целого числа n на симметрию цифр Вариант 2.
- •19. Программа проверки глубины вложения скобок
- •20. Формирование двумерного массива
- •21. Вычисление определителя матрицы второго порядка
- •22. Вычисление определителя матрицы 3 - го порядка
- •23. Нахождение обратной перестановки и по ней циклической формы
- •24. Сортировка_1 простыми вставками
- •25. Сортировка_2 простыми вставками
- •26. Сортировка алгоритмом Шелла
- •27. Быстрая сортировка Хоора
- •28. Поразрядная сортировка
- •29. Cортировка 1 методом пузырька
- •30. Cортировка 2 методом пузырька
- •31. Работа с библиотечными карточками
- •32. Работа 1 с конструктором и деструктором
- •33. Работа 2 с конструктором и деструктором
- •34. Работа с комплексными числами
- •35. Работа_1 с комплексными числами через указатели
- •36. Работа_2 с комплексными числами через указатели
- •37. Построение циклической очереди статическое распределение памяти
- •38. Построение стека символов статическое распределение памяти
- •39. Код работы с циклической очередью, переделанный из кода стека
- •40. Код работы со стеком, переделанный из кода циклической очереди
- •41. Генерирование случ. Чисел с показательным распределением
- •42. Работа со стеком динамическое распределение памяти
28. Поразрядная сортировка
// поразрядная сортировака чисел >=0
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <conio.h>
#define SIZE 10 // максимальная размерность сортируемого массива
int main()
{
int A[SIZE],n; // исходный массив
int B[10][SIZE]; // рабочий 10 - строчный массив
int i,j,k=0,i1,j1=1,m=0,kk=10;
for(i=0;i<=9;i++)
for(j=0;j<SIZE;j++) B[i][j]=-1; // инициализация B[][]
cout<<"Enter n \n";
cin>>n;
cout<<"Enter A[]:\n";
for(i=0;i<n;i++) cin>>A[i];
// поиск максимального числа
int max=A[0];
for(i=0;i<n;i++) if(A[i]>max) max=A[i];
// определение разрядности максимального числа
int t=max;
while(t>=1)
{
t=t/kk;
k++;
}
int digit=k; // размерность максимального числа
// формирование массива B[]
while(j1<=digit) // j1 - индекс цифр чисел
{
j=0; // индекс cтолбца массива В[][j]
for(i=0;i<n;i++) // цикл по числам
{
k=10;
if(A[i]%kk!=0)
{
int kd=kk;
while(k>9)
{
kd=kd/10;
k=(A[i]%kk-A[i]%kd)/kd;
// k – номер строки в массиве В[][]
}
}
else k=0;
if(B[k][j]!=-1) j++;
B[k][j]=A[i];
}
// собираем новый A[]
m=0;
for(i=0;i<=9;i++)
for(i1=0;i1<n;i1++)
if((B[i][i1]!=-1))
{
A[m]=B[i][i1];
m++;
}
// инициализация B[][] для следующих прогонов
for(i=0;i<=9;i++)
for(i1=0;i1<=SIZE-1;i1++) B[i][i1]=-1;
j1++; // переход к сортировке по следующей cтаршей цифре
kk=kk*10; // kk- делитель чисел
}
cout<<" new array A[]: \n";
for(i=0;i<n;i++) cout<<" "<<A[i];
_getch();
return 0;
}
29. Cортировка 1 методом пузырька
// сортировка методом пузырька
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <conio.h>
#define SIZE 10
int main()
{
int A[SIZE],i,n,j;
cout<<"Enter n \n";
cin>>n;
cout<<"Enter A[] \n";
for(i=0;i<n;i++) cin>>A[i];
for(i=1;i<=n-1;i++) // цикл по прогонам массива
{
int flag=1; //признак отсортированности массива
for(j=0;j<n-1;j++) // цикл пл элементам массива
{
if(A[j]>A[j+1])
{
int t=A[j+1];
A[j+1]=A[j];
A[j]=t;
flag=0; //признак не отсортированности массива
}
}
if(flag==1) break;
}
cout<<"\n new A[]: \n";
for(i=0;i<n;i++) cout<<" "<<A[i];
getch();
return 0;
}
30. Cортировка 2 методом пузырька
Автор Моргунов Ю. ГИП-110
// сортировка массива пузырьком, массив задается случайно
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <stdlib.h>
#include <time.h> // библиотека, где лежит функция задания текущего времени
#include <conio.h>
#define SIZE 100
int main()
{
int A[SIZE],i,n,j;
srand(time(NULL));
// функция задания текущего времени в качестве нач. значения при генерации
cout<<"Enter n \n";
cin>>n;
for(i=0;i<n;i++) A[i]=rand()%10;
for(i=1;i<=n-1;i++) // цикл по прогонам массива
{
int flag=1; //признак отсортированности массива
for(j=0;j<n-1;j++) // цикл пл элементам массива
{
if(A[j]>A[j+1])
{
int t=A[j+1];
A[j+1]=A[j];
A[j]=t;
flag=0; //признак не отсортированности массива
}
}
if(flag==1) break;
}
cout<<"\n new A[]: \n";
for(i=0;i<n;i++) cout<<" "<<A[i];
getch();
return 0;
}