You are on page 1of 4

3.

:Sx chn:
T tng:
Chn phn t nh nht trong n phn t ban u, a phn t ny
v v tr ng l u tin ca dy hin hnh. Sau khng quan
tm n n na, xem dy hin hnh ch cn n-1 phn t ca dy
ban u, bt u t v tr th 2. Lp li qu trnh trn cho dy hin
hnh n khi dy hin hnh ch cn 1 phn t. Dy ban u c n
phn t, vy tm tt tng thut ton l thc hin n-1 lt vic
a phn t nh nht trong dy hin hnh v v tr ng u dy.
Cc bc tin hnh nh sau:
Bc 1: i=1
Bc 2: Tm phn t a[min] nh nht trong dy hin hnh t
a[i] n a[n]
Bc 3: Hon v a[min] v a[i]
Bc 4: Nu i<=n-1 th i=i+1; Lp li bc 2
Ngc li: Dng. n-1 phn t nm ng v tr.
V d: Cho dy a = (12,2,8,5,1,6,4,15)
12

Cho dy s a:

12

15

15

Gii thut:
#include <stdio.h>
#include <conio.h>
void SX(int n,int a[10])

{
int i, j, swap, min;
for( i=0; i < n-1 ; i ++)
{
min = i;
for( j= i+1; j < n; j ++)
{
if( a[j] < a[min])
min = j;
}
swap = a[min];
a[min] = a[i];
a[i] = swap;
}
}
main ()
{
int a[10],i;
int x = 10;
printf("\nNhap mang:\n");
for ( i = 0; I < 10;i ++)
{
printf(" Phan tu thu %d la:", i +1);
scanf("%d", &a[i]);
}
SX(x,a);
printf("Day sau khi sap xep:\n");
for ( i= 0; i < 10;i ++)
{
printf(" Phan tu thu %d la:", i+1);
printf("%5d \n",a[i]);
}
getch();

//** nh gi thut ton:


Cu trc d liu: Ngu nhin
Phc tp thi gian: Trung bnh O(n2)
Phc tp d liu: Khng tn thm vng nh
Ti u: Thnh thong

You might also like