Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
32
Добавлен:
10.05.2014
Размер:
811 б
Скачать
//Двоичная вставка
#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