Домашнее задание Дано текстовые файлы f1 f2 Переписать сохранением пор

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
1. Домашнее задание:
Дано текстовые файлы f1 и f2. Переписать с сохранением порядка компоненты файла f1 в файл f2, а
компоненты файла f2 в файл f1. Использовать вспомогательный файл.
2. Быстрая сортировка:
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
template <typename T>
void quickSortR(T a[], int B, int E) {
long i = B, j = E;
T temp, p;
p = a[(B+E)/2];
do{
while ( a[i] < p ) i++;
while ( a[j] > p ) j--;
if (i <= j){
temp = a[i];
a[i] = a[j];
a[j] = temp;
i++;
j--;
}
}while ( i<=j );
if(B<j)quickSortR(a, B, j);
if(i<E)quickSortR(a, i, E);
}
void main(){
srand(time(NULL));
const long SIZE=10;
int ar[SIZE];
// до сортировки
for(int i=0;i<SIZE;i++){
ar[i]=rand()%100;
cout<<ar[i]<<"\t";
}
cout<<"\n\n";
quickSortR(ar,0,SIZE-1);
// после сортировки
for(int i=0;i<SIZE;i++){
cout<<ar[i]<<"\t";
}
cout<<"\n\n";
}
3. Бинарный поиск:
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int BinarySearch (int A[], int Lb, int Ub, int Key)
{
int M;
while(1){
M = (Lb + Ub)/2;
if (Key < A[M])
Ub = M - 1;
else if (Key > A[M])
Lb = M + 1;
else
return M;
if (Lb > Ub)
return -1;
}
}
void main(){
srand(time(NULL));
const long SIZE=10;
int ar[SIZE];
int key,ind;
// до сортировки
for(int i=0;i<SIZE;i++){
ar[i]=rand()%100;
cout<<ar[i]<<"\t";
}
cout<<"\n\n";
cout<<"Enter any digit:";
cin>>key;
ind=BinarySearch(ar,0,SIZE,key);
cout<<"Index - "<<ind<<"\t";
cout<<"\n\n";
}