Добавил:
Hist
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Программы c++ (сортировка, хэширование) / 2 / Binary_Insertion_sym
.cpp//Двоичная вставка
#include <iostream>
#include <stdio.h>
#include <math.h>
#define n 20
using namespace std;
char mass[n];
void input(void)
{
int i;
for (i=0; i<n; i++)
{
mass[i]=109+12*sin(4*i); //Random
//mass[i]=n-i; //убывание
//mass[i]=i; //возрастание
}
}
void output(void)
{
int i;
for (i=1; i<n; i++) cout << mass[i] << " ";
cout << "\n";
}
void Bin_Ins(void)
{
int i,j,m,l,r,x;
for (i=0; i<n; i++)
{
x=mass[i];
l=1; r=i;
do
{
m=(l+r)/2;
if (mass[m]<x) l=m+1;
else r=m;
} while (l<r);
for (j=i; j>=r+1; j--) mass[j]=mass[j-1];
mass[r]=x;
}
}
int main(void)
{
input();
output();
Bin_Ins();
output();
}
Соседние файлы в папке 2