4 code sắp xếp đơn giản

gồm:

Chọn trực tiếp

Chèn trực tiếp

Đổi chổ trực tiếp

và Nổi bọt

Ưu điểm: code đơn giản, làm việc nhanh với số phần tử nhỏ

Nhược: thời gian chạy lâu với số phần tử lớn

Code

[AH]

Mã:

#include<stdio.h>

void hoanvi(int &a, int &b);

void sortchontructiep(int a[], int n);

void sortchentructiep(int a[], int n);

void sortdoichotructiep(int a[], int n);

void sortnoibot(int a[], int n);

int main()

{

int a[]={84,32,13,64,1,55,48};

int n = 7;

// sortchontructiep(a,n);

// sortchentructiep(a,n);

// sortdoichotructiep(a,n);

// sortnoibot(a,n);

for(int i = 0 ; i < n ; i ++)

printf("%d ",a[i]);

}

void sortchontructiep(int a[],int n)

{

for ( int i = 0 ; i < n-1 ; i ++)

{

int min = i;

for ( int j = i ; j < n ; j ++)

if(a[min]>a[j])

min = j;

hoanvi(a[i],a[min]);

}

}

void sortchentructiep(int a[], int n)

{

for ( int i = 0 ; i < n ; i ++)

{

int tmp = i-1;

int tmp1 = a[i];

while( tmp >= 0 && a[tmp] > tmp1)

{

a[tmp+1] = a[tmp];

tmp--;

}

a[tmp+1]= tmp1;

}

}

void sortdoichotructiep(int a[], int n)

{

for ( int i = 0 ; i < n-1 ; i ++)

for ( int j = i ; j < n ; j ++)

if(a[i]>a[j])

hoanvi(a[i],a[j]);

}

void sortnoibot(int a[], int n)

{

for ( int i = 0 ; i < n-1 ; i ++)

for ( int j = n-1 ; j > i ; j --)

if( a[j] < a[j-1])

hoanvi(a[j],a[j-1]);

}

void hoanvi(int &a, int &b)

{

int tmp;

tmp = a ;

a = b ;

b = tmp;

}

[/AH]