code danh sach
Mang 1 chieu
#include<stdio.h>
#include<conio.h>
void hoanvi (int *a, int *b)
{
int t;
t=*a;
*a=*b;
*b=t;
}
void quicksort(int a[], int l, int r)
{
int i,j;
int x;
x= a[(l+r)/2];
i=l;j=r;
do{
while (a[i]<x) i ++;
while(a[j]>x) j--;
if(i<=j)
{
hoanvi (&a[i], &a[j]);
i++; j--;
}
} while (i<j);
if(l<j)
quicksort(a,l,j);
if (i<r)
quicksort (a,i,r);
}
void insertionsort(int a[], int n)
{
int poss,x;
for(int i=1;i<n;i++)
{
x=a[i];
poss=i-1;
while (poss>=0 && a[poss]>x)
{
a[poss+1] = a[poss];
poss--;
}
a[poss+1] = x;
}
}
void chontructiep(int a[], int n)
{
int min;
for(int i=0; i<n-1;i++)
{
min = i;
for (int j=i+1;j<n;j++)
{
if(a[j]<a[min])
{
min =j;
}
}
hoanvi(&a[i], &a[min]);
}
}
void interchansort(int a[], int n)
{
for(int i=0;i<n-1;i++)
{
for(int j=i+1;j<n;j++)
if(a[i]>a[j]) hoanvi(&a[i],&a[j]);
}
}
}
void bublesort(int a[], int n)
{
for(int i=0;i<n-1;i++)
{
for(int j=n-1;j>i;j--)
{
if(a[j-1]>a[j]) hoanvi(&a[j-1],&a[j]);
}
}
}
void shellsort(int a[], int n, int h[], int k)//chu y chon k = log3(n-1)
{
int step,i,j;
int x, len;
for (step = 0; step <k; step ++)
{
len = h[step];
for (i=len; i<n; i++)
{
x=a[i];
j=i-len;
while ((x<a[j]) && (j>=0))
{
a[j+len] = a[j];
j=j-len;
}
a[j+len] = x;
}
}
}
/*int timkiem_np(int a[],int n, int x)
{
int mid,l,r;
l=0;
r=n-1;
while(l<=r)
{
mid = (l+r)/2;
if(x==a[mid]) return mid;
if(x>a[mid]) l=mid+1;
else r=mid-1;
}
}*/
void main()
{
int n=0,i=0,a[20],b,d,c;
FILE *fp;
FILE *td;
//FILE *td;
fp = fopen("tdtruong.txt", "r");
while (feof(fp)==0)
{
fscanf(fp, "%d", &b);
a[i]=b;
i++;
n++;
}
fclose(fp);
//quicksort (a,0,n-1);
//insertionsort(a,n);
//chontructiep(a,n);
//interchansort(a,n);
bublesort(a,n);
td = fopen("abc.txt","w");
for(int i=0; i<n;i++)
{
fprintf(td, "%d ",a[i]);
}
fclose(td);
}
/*chuong trinh merge sort
#include <stdio.h>
#include <conio.h>
void nhapmang(int a[] , int n)
{
for(int i=0 ; i<n ;i++)
{
printf("a[%i] ",i);
scanf("%d",&a[i]);
}
}
void xuatmang(int a[] , int n)
{
printf("
");
for(int i=0 ; i<n ; i++)
{
printf("%d ",a[i]);
}
}
void Merge(int a[] , int b[] , int c[] , int nb , int nc , int k)
{
int p , pb , pc , ib , ic ;
p = pb = pc = 0 ; ib = ic = 0 ;
while(( nb > 0 ) && ( nc > 0 ))
{
if ( b[pb+ib] <= c[pc+ic] )
{
a[p++] = b[pb+ib] ;
ib++ ;
if (ib==k)
{
for(; ic < k ; ic++)
a[p++] = c[pc+ic] ;
pb += k ; pc += k ;
ib = ic = 0 ;
nb -= k ; nc -= k ;
}
}
else
{
a[p++] = c[pc+ic] ;
ic++;
if ( ic == k )
{
for(; ib < k ; ib++ )
a[p++] = b[pb+ib];
pb += k ; pc += k ;
ib = ic = 0 ;
nb -= k ; nc -= k ;
}
}
}
}
void XapSep_MergeSort ( int a[] , int b[] , int c[] , int n)
{
int p , pb , pc ;
int i , k ;
k = 1 ;
do
{
p = pb = pc = 0 ;
while ( p < n )
{
for (int i=0 ; (p<n) && (i< k) ; i++ )
b[pb++] = a[p++];
for (int i=0 ; (p<n) && (i< k) ; i++)
c[pc++] = a[p++] ;
}
Merge(a,b,c,pb,pc,k) ;
k *= 2 ;
}while( k < n ) ;
}
void main()
{
int a[100] ; int n;
int b[100] , c[100] ;
printf("nhap so phan tu mang "); scanf("%d",&n);
nhapmang(a,n);
XapSep_MergeSort(a,b,c,n);
xuatmang(a,n);
getch();
}
*/
Bạn đang đọc truyện trên: Truyen247.Pro