Tìm tuyến tính (Linear Seach) – [Array]


Ý tưởng:

So sánh lần lượt các phần tử của mảng A với giá trị X cần tìm bắt đầu từ phần tử đầu tiên cho đến khi tìm thấy hoặc tìm hết mảng mà không tìm thấy X

Thuật toán

B1: i = 1 ;// bắt đầu từ phần tử đầu tiên

B2: so sánh A[i] với X, có 2 khả năng :

A[i] =X : Tìm thấy. Dừng
A[i] <>X : Sang B3

B3: i=i+1 // Xét phần tử tiếp theo trong mảng

Nếu i>n : Hết mảng, không tìm thấy.Dừng

Ngược lại: lặp lại B2
======================================================

asd


int LinearSearch (int A[], int n, int X)
{
int i = 0;
while (A[i] != X && i < n) 
i++;

   if (i < n)
return (i);
return (-1);
}

Cải tiến cho thuật toán ở trên có thể viết lại như sau

int LinearSearchCaiTien (int A[], int n, int X)
{
int i = 0;
A[N] = X; // phần tử mảng A tính từ 0

while (A[i] != X)
i++;
if (i < i)
return (i);
return (-1);
}

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: