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]
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]