logo
Author: nekitozzz
Description: лаба№ 4
Language: C++
/*--------------------------------------------------------------------------------------
	Дано натуральное число N (1<=N<=100), целочисленный линейный массив a0, a1, …, aN-1.
Элементы массива заполняются случайными целыми числами из диапазона [0, N]. Требуется 
отсортировать массив используя алгоритм сортировки выбором. После сортировки 
произвести поиск в массиве введенного значения при помощи алгоритма последовательного 
поиска с барьером в начале массива.
----------------------------------------------------------------------------------------
									Выполнил: Анисимов Никита Сергеевич, ИТ-11*/
#include <iostream>
#include <time.h>
using namespace std;

void random_array (int max_numb, int array_x[]);
void insertion_sort (int numb_of_array_el, int array_x[]);
void search_in_array (int length_array, int elements, int array_x[]);
void print_array (int max_numb, int array_x[]);

int main () 
{
	setlocale(0,"Rus");
	int N,K;
	cout<<"Введите число, которое будет являться размером массива и  максимальным элементом в этом массиве одновременно"<<endl;
	cin>>N;
	int *p=new int[N];
	random_array(N,p);//заполняем массив 
	print_array(N,p);
	insertion_sort(N,p);//сортируем массив
	print_array(N,p);
	cout<<"Введите число для его поиска в массиве"<<endl;
	cin>>K;
	search_in_array(N,K,p);//ищем K в массиве
	delete[]p;
	system("pause");
	return 0;
}

/*--------------------------------------------------------------------------------------
	Функция заполняет входной массив целочисленными случайными числами из диапазона 
от 0 до входного параметра.
----------------------------------------------------------------------------------------*/
void random_array (int max_numb, int array_x[])
{
	srand(time(NULL));//параметр, благодаря которому генерируются действительно случайные числа
	int i;
	for (i=0;i<max_numb;i++)
		array_x[i]=rand()%max_numb;
	return;
}

/*--------------------------------------------------------------------------------------
	Функция выводит на экран входной массив.
----------------------------------------------------------------------------------------*/
void print_array (int max_numb, int array_x[])
{
	int i;
	for (i=0;i<max_numb;i++)
		cout<<array_x[i]<<" ";
	cout<<endl;
	return;
}
/*--------------------------------------------------------------------------------------
	Функция реализует алгоритм сортировки выбором над входным массивом.
----------------------------------------------------------------------------------------*/
void insertion_sort (int numb_of_array_el, int array_x[])
{
	int i,j,min;//min-текущее минимальное значение в массиве
	int index_min;
	for (j=0;j<numb_of_array_el;j++)
	{
		min=array_x[j];
		index_min=j;
		for (i=j;i<numb_of_array_el;i++)
		{
			if (array_x[i]<min)
			{
				min=array_x[i];
				index_min=i;
			}
		}
		array_x[index_min]=array_x[j];
		array_x[j]=min;
	}
	return;
}

/*--------------------------------------------------------------------------------------
	Функция реализует поиск входного элемента во входном массиве алгоритмом 
последовательного поиска с барьером в начале массива. 
----------------------------------------------------------------------------------------*/
void search_in_array (int length_array, int elements, int array_x[])
{
	int i;
	int *q=new int[length_array+1];//Создаём новый массив размерностью на 1 больше исходного
	for (i=0;i<length_array;i++)
		q[i]=array_x[i];		   //и заполняем его теми же элементами
	q[length_array]=elements;	   //кроме последнего элемента, который будет выполнять функцию барьера
	i=0;
	while (q[i]!=elements)
		i++;
	if(i!=length_array)
		cout<<i+1<<"ый элемент массива является искомым числом"<<endl;
	else
		cout<<"этого элемента нет в массиве"<<endl;
	return;
}
Recent pastes:
123123123 (PHP)
ksurent (Perl)
ksurent (Bash)
guata (Plain Text)
biophreak (Plain Text)
Raik (PHP)
MUSbKA (Plain Text)
MUSbKA (Plain Text)
nekitozzz (C++)
nekitozzz (Plain Text)
nekitozzz (C++)
ksurent (Perl)
MUSbKA (C++)
stalin_alex (C++)
dzantiev (Plain Text)
unreal (C++)
eug2b (Plain Text)
We Are Not Responsible for User Content
netsago.paste.β © 2009—2012 Neunica