4 Code C Sắp Xếp Đơn Giản: Chèn, Chọn, Đổi chỗ, nổi bọt

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]
 
Đây là 4 thuật toán sắp xếp hay gặp nhất.

Các bạn có theo tham khảo video này để rõ hơn về các thuật toán sắp xếp.

 
Top