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.

 

Thống kê

Chủ đề
102,788
Bài viết
470,611
Thành viên
340,593
Thành viên mới nhất
winspire
Top