co de 1 chieu

Màu nền
Font chữ
Font size
Chiều cao dòng

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: Truyen2U.Pro

#lan