- •Метод вставок
- •Метод выбора
- •Метод обмена
- •Метод обмена Антона
- •Метод подсчета
- •Метод подсчета
- •Поиск инверсными массивами
- •Метод золотого сечения
- •Метод фиббоначи
- •Поиск по двоичному дереву(флоат)
- •Сортировка с помощью дерева
- •Хеширование
- •Хеширование
- •Шифрование. Простая подстановка
- •Метод Шелла
- •Поиск по двоичному дереву
- •Метод дихотомии
- •Многоаспектныйпоиск с использ инверстных массивов (интервал)
- •Метод выбора
- •Гаммирование
Метод вставок
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
void sort(int a[],int b[], int k);
int main(void) {
int i,n=0,*m,*sm;
FILE *inp,*out;
if((inp=fopen("1.txt","r"))==NULL) {
system ("echo Нельзя открыть файл с элементами");
system ("pause");
return 0; }
while(feof(inp)==0) {
fscanf(inp,"%d",&i);
n++; }
fclose(inp);
m=new int[n];
sm=new int[n];
fopen("1.txt","r");
clrscr();
system ("echo Количество элементов");
printf("n=%d\n\r",n);
system ("echo Исходная последовательность");
for(i=0;i<n;i++){
fscanf(inp,"%d",&m[i]);
printf(" %d ",m[i]); }
sort(m,sm,n);
fclose(inp);
out=fopen("2.txt","w");
printf ("\n");
system("echo Отсортированная последовательность");
for(i=0;i<n;i++){
printf(" %d ",sm[i]);
fprintf(out," %d ",sm[i]); }
delete []m;
delete []sm;
fclose(out);
getch(); }
void sort (int a[],int b[],int k) {
int nov,j;
b[0]=a[0];
for (int p=1;p<k;p++) {
nov=a[p];
j=p-1;
if(b[j]<nov)b[j+1]=nov;
while(b[j]>nov&&j>=0) {
b[j+1]=b[j];
j--; }
b[j+1]=nov; } }
Метод выбора
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
void sort(int* x, int q) {
int i,j;
int min;
int temp;
for (i=0;i<q-1;i++) {
min=i;
for (j=i+1;j<q;j++) {
if (x[min]>x[j]) {
min=j; } }
temp=x[i];
x[i]=x[min];
x[min]=temp; } }
int main (void) {
char name_in[50],name_out[50];
int i=0,j;
int temp=0;
int* mass=NULL;
FILE *in, *out;
printf("Input in filename\n");
scanf("%s",&name_in);
printf("Input out filename\n");
scanf("%s",&name_out);
in=fopen(name_in,"r");
if(in==NULL) {
printf("Error. File %s is not exist.\n",name_in);
system("pause");
return 1; }
else {
printf("Unsorted:\n");
while(!feof(in)) {
fscanf(in,"%d",&temp);
printf("%d ",temp);
i++; }
mass=(int*)malloc(i*sizeof(int));
fseek(in,0,SEEK_SET);
for(j=0;j<i;j++) {
fscanf(in,"%d",&temp);
mass[j]=temp; }
fclose(in);
sort(mass,i);
out=fopen(name_out,"w");
printf("\nSorted:\n");
for(j=0;j<i;j++) {
temp=mass[j];
printf("%d ",temp);
fprintf(out,"%d ",temp); }
fclose(out);
free(mass);
printf("\n");
system("pause");
return 0; } }
Метод обмена
#include<stdio.h>
#include<conio.h>
#include<alloc.h>
int* bubble_sort(int*a,int n) {
int i,j,f=1;
int tmp;
for(i=0;i<n-1;i++){
for(j=n-1;j>i;j--){
f=0;
if(a[j]<a[j-1]){
tmp=a[j-1];
a[j-1]=a[j];
a[j]=tmp;
f=1; } }
if(f==0)break; }
return a; }
main()
fseek(f,0,SEEK_SET); a=(int*)malloc(n*sizeof(int));
for(i=0;i<n;i++){
fscanf(f,"%d",&a[i]); }
fclose(f); {
char name1[10],name2[10];
FILE*f;
int*a;
int i,n=0,tmp;
printf("name1: ");
scanf("%s",name1);
printf("name2: ");
scanf("%s",name2);
f=fopen(name1,"rt");
if(f==NULL){
printf("error"); }
else{
while(!feof(f)){
fscanf(f,"%d",&tmp);
n++; }
printf("\n");
printf("%s: ",name1);
for(i=0;i<n;i++){
printf("%d ",a[i]); }
printf("\n"); bubble_sort(a,n); printf("%s: ",name2);
for(i=0;i<n;i++){
printf("%d ",a[i]); } f=fopen(name2,"wt"); for(i=0;i<n;i++){ fprintf(f,"%d ",a[i]); }
fclose(f); }
free(a);
getch(); }