Tải bản đầy đủ (.ppt) (26 trang)

slide 1 §4 bài toán và thuật toán § 4 bài toán và thuật toán ví dụ 1 kiểm tra tính nguyên tố của một số nguyên dương xác định bài toán input n là một số nguyên dương output n là số nguyên tố hoặc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (355.23 KB, 26 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

<b>§4. </b>



<b>§4. </b>

<b>§4. </b>

<b>BÀI TỐN VÀ THUẬT TỐN</b>

<b>BÀI TỐN VÀ THUẬT TỐN</b>



</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

<i><b>Ví dụ 1</b></i>



<i><b>Ví dụ 1</b></i>

<i><b>. </b></i>

<i><b><sub>. </sub></b></i>

Kiểm tra tính nguyên tố của một số

<sub>Kiểm tra tính nguyên tố của một số </sub>


nguyên dương



nguyên dương



<sub>Xác định bài toán</sub>

<sub>Xác định bài toán</sub>



 <sub>Input: N là một số nguyên dương;</sub><sub>Input: N là một số nguyên dương;</sub>


 <sub>Output: "N là số nguyên tố" hoặc "N </sub><sub>Output: "N là số nguyên tố" hoặc "N </sub>
không là số ngun tố".


khơng là số ngun tố".


<b>3. Một số ví dụ về thuật toán</b>



</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

 <i><b><sub>Ý tưởng:</sub></b><b><sub>Ý tưởng:</sub></b></i>


 <sub>Nếu N = 1 thì N khơng là số ngun tố;</sub><sub>Nếu N = 1 thì N khơng là số ngun tố;</sub>
 <sub>Nếu 1 < N < 4 thì N là số nguyên tố;</sub><sub>Nếu 1 < N < 4 thì N là số nguyên tố;</sub>


 <sub>Nếu N</sub><sub>Nếu N</sub><sub></sub><sub></sub><sub> 4 và khơng có ước số trong </sub><sub> 4 và không có ước số trong </sub>
phạm vi từ 2 đến phần nguyên căn bậc hai


phạm vi từ 2 đến phần nguyên căn bậc hai



của N thì N là số nguyên tố.


của N thì N là số ngun tố.


<b>3. Một số ví dụ về thuật tốn</b>



</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

 <i><b><sub>Thuật toán</sub></b><b><sub>Thuật toán</sub></b></i>


<i><b>a) Thuật toán diễn tả bằng cách liệt kê</b></i>


<i><b>a) Thuật toán diễn tả bằng cách liệt kê</b></i>


 <sub>Bước 1</sub><sub>Bước 1</sub><sub>: Nhập số nguyên dương </sub><sub>: Nhập số nguyên dương </sub><i><sub>N</sub><sub>N</sub></i><sub>;</sub><sub>;</sub>


 <sub>Bước 2</sub><sub>Bước 2</sub><sub>: Nếu </sub><sub>: Nếu </sub><i><sub>N</sub><sub>N</sub></i><sub> = 1 thì thơng báo </sub><sub> = 1 thì thơng báo </sub><i><sub>N</sub><sub>N</sub></i><sub> khơng </sub><sub> khơng </sub>


ngun tố rồi kết thúc;
nguyên tố rồi kết thúc;


 <sub>Bước 3</sub><sub>Bước 3</sub><sub>: Nếu </sub><sub>: Nếu </sub> <i><sub>N</sub><sub>N</sub></i><sub> < 4 thì thơng báo </sub><sub> < 4 thì thơng báo </sub> <i><sub>N</sub><sub>N</sub></i><sub> là </sub><sub> là </sub>


nguyên tố rồi kết thúc;
nguyên tố rồi kết thúc;


 <sub>Buớc 4</sub><sub>Buớc 4</sub><i><sub>: i</sub><sub>: i</sub></i> <sub></sub><sub></sub><sub> 2;</sub><sub> 2;</sub>


<b>3. Một số ví dụ về thuật tốn</b>



</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

 <i><b><sub>Thuật toán</sub></b><b><sub>Thuật toán</sub></b></i>



<i><b>a) Thuật toán diễn tả bằng cách liệt kê</b></i>


<i><b>a) Thuật toán diễn tả bằng cách liệt kê</b></i>


 <sub>Bước 5</sub><sub>Bước 5</sub><sub>: Nếu i > thì thơng báo N là </sub><sub>: Nếu i > thì thông báo N là </sub>
nguyên tố rồi kết thúc;


nguyên tố rồi kết thúc;


 <sub>Bước 6</sub><sub>Bước 6</sub><sub>: Nếu N chia hết cho i thì thơng </sub><sub>: Nếu N chia hết cho i thì thơng </sub>
báo N khơng ngun tố rồi kết thúc;


báo N không nguyên tố rồi kết thúc;


 <sub>Bước 7</sub><sub>Bước 7</sub><sub>: i </sub><sub>: i </sub><sub></sub><sub></sub><sub> i + 1 rồi quay lại bước 5.</sub><sub> i + 1 rồi quay lại bước 5.</sub>


<b>3. Một số ví dụ về thuật tốn</b>



<b>3. Một số ví dụ về thuật tốn</b>



</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

<i><b><sub>Thuật tốn</sub></b></i>

<i><b><sub>Thuật toán</sub></b></i>



<i><b>b) Thuật toán diễn tả bằng sơ đồ </b></i>


<i><b>b) Thuật toán diễn tả bằng sơ đồ </b></i>



<i><b>khối</b></i>


<i><b>khối</b></i>



<b>3. Một số ví dụ về thuật tốn</b>




</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>

Nhập N
Nhập N
N=1 ?
N=1 ?
N<4 ?
N<4 ?
i


i  2 2


i


i  i + 1 i + 1


i > ?


i > ?


N chia hết


N chia hết


cho i ?


cho i ?


-<sub>N là NTố</sub><sub>N là NTố</sub>
-<sub>Kết thúc</sub><sub>Kết thúc</sub>



-N không là Ntố


-N không là Ntố


</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>

<i><b>N = 29 ; phần nguyên = 5</b></i>


<i><b>N = 29 ; phần nguyên = 5</b></i>

<b>3. Một số ví dụ về thuật tốn</b>



<b>3. Một số ví dụ về thuật tốn</b>



2


22


2 3333 4<sub>4</sub><sub>4</sub><sub>4</sub> 555<sub>5</sub> 6<sub>6</sub><sub>6</sub><sub>6</sub>


i =


i =


<b>29/2</b>


<b>29/229/2</b>


<b>29/2</b> <b>29/329/329/329/3</b> <b>29/4<sub>29/4</sub><sub>29/4</sub><sub>29/4</sub></b> <b>29/5<sub>29/5</sub><sub>29/5</sub><sub>29/5</sub></b>
N/i


N/i



Không


Không


Không


Không KhôngKhôngKhôngKhông Không<sub>Không</sub><sub>Không</sub><sub>Không</sub> Không<sub>Không</sub><sub>Không</sub><sub>Không</sub>
Chia hết


Chia hết


Không?


Không?


 
 29


</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>

<i><b>N = 45 ; phần nguyên = 6</b></i>


<i><b>N = 45 ; phần nguyên = 6</b></i>

<b>3. Một số ví dụ về thuật tốn</b>



<b>3. Một số ví dụ về thuật tốn</b>



2


22


2 333<sub>3</sub>



i =


i =


<b>45/2</b>


<b>45/2</b>


<b>45/2</b>


<b>45/2</b> <b>45/345/345/3<sub>45/3</sub></b>


N/i


N/i


Khơng


Khơng


Khơng


Khơng Chia hếtChia hếtChia hết<sub>Chia hết</sub>


Chia hết


Chia hết


Không?



Không?


 
 45


</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>

<i><b>Ví dụ 2</b></i>


<i><b>Ví dụ 2</b><b>. </b><b>. </b></i>Bài tốn sắp xếp:Bài toán sắp xếp:


Cho dãy A gồm N số nguyên a


Cho dãy A gồm N số nguyên a<sub>1</sub><sub>1</sub>, a, a<sub>2</sub><sub>2</sub>,..., a,..., a<sub>N</sub><sub>N</sub>. .


Cần sắp xếp các số hạng để dãy A trở thành


Cần sắp xếp các số hạng để dãy A trở thành


dãy không giảm (tức là số hạng trước không


dãy không giảm (tức là số hạng trước không


lớn hơn số hạng sau).


lớn hơn số hạng sau).


<b>3. Một số ví dụ về thuật tốn</b>



</div>
<span class='text_page_counter'>(11)</span><div class='page_container' data-page=11>

 <i><b><sub>Xác định bài toán</sub></b><b><sub>Xác định bài toán</sub></b></i>



 Input: Dãy A gồm N số nguyên a<sub>Input: Dãy A gồm N số nguyên a</sub><sub>1</sub><sub>1</sub>, a<sub>, a</sub><sub>2</sub><sub>2</sub>,..., a<sub>,..., a</sub><sub>N</sub><sub>N</sub>.<sub>.</sub>
 <sub>Output: Dãy A được sắp xếp lại thành dãy </sub><sub>Output: Dãy A được sắp xếp lại thành dãy </sub>


không giảm.


không giảm.


 <i><b><sub>Ý tưởng: </sub></b><b><sub>Ý tưởng: </sub></b></i><sub>Với mỗi cặp số hạng đứng liền kề trong </sub><sub>Với mỗi cặp số hạng đứng liền kề trong </sub>


dãy, nếu số trước lớn hơn số sau ta đổi chỗ chúng


dãy, nếu số trước lớn hơn số sau ta đổi chỗ chúng


cho nhau. Việc đó được lặp lại, cho đến khi không


cho nhau. Việc đó được lặp lại, cho đến khi khơng


có sự đổi chỗ nào xảy ra nữa.


có sự đổi chỗ nào xảy ra nữa.


<b>3. Một số ví dụ về thuật tốn</b>



</div>
<span class='text_page_counter'>(12)</span><div class='page_container' data-page=12>

 <sub>Thuật toán: Cách liệt kê</sub><sub>Thuật toán: Cách liệt kê</sub>


 Bước 1: Nhập N, và dãy a<sub>Bước 1: Nhập N, và dãy a</sub><sub>1</sub><sub>1</sub>, a<sub>, a</sub><sub>2</sub><sub>2</sub>,..., a<sub>,..., a</sub><sub>N</sub><sub>N</sub>;<sub>;</sub>
 <sub>Bước 2: M </sub><sub>Bước 2: M </sub><sub></sub><sub></sub><sub> N;</sub><sub> N;</sub>


 <sub>Bước 3: Nếu M < 2 thì đưa ra dãy A đã được </sub><sub>Bước 3: Nếu M < 2 thì đưa ra dãy A đã được </sub>
sắp xếp rồi kết thúc;



sắp xếp rồi kết thúc;


 <sub>Bước 4: M </sub><sub>Bước 4: M </sub><sub></sub><sub></sub><sub> M – 1, i </sub><sub> M – 1, i </sub><sub></sub><sub></sub><sub> 0;</sub><sub> 0;</sub>
 <sub>Bước 5: i </sub><sub>Bước 5: i </sub><sub></sub><sub></sub><sub> i + 1;</sub><sub> i + 1;</sub>


 <sub>Bước 6: Nếu i > M thì quay lại bước 3;</sub><sub>Bước 6: Nếu i > M thì quay lại bước 3;</sub>


 Bước 7: Nếu a<sub>Bước 7: Nếu a</sub><sub>i</sub><sub>i</sub> > a<sub> > a</sub><sub>i+1</sub><sub>i+1</sub> thì tráo đổi a<sub> thì tráo đổi a</sub><sub>i</sub><sub>i</sub> và a<sub> và a</sub><sub>i+1 </sub><sub>i+1 </sub>;<sub>;</sub>
 <sub>Bước 8: Quay lại bước 5.</sub><sub>Bước 8: Quay lại bước 5.</sub>


<b>3. Một số ví dụ về thuật toán</b>



</div>
<span class='text_page_counter'>(13)</span><div class='page_container' data-page=13>

Nhập N ; a


Nhập N ; a<sub>1</sub><sub>1</sub>,a,a<sub>2</sub><sub>2</sub>,..a,..a<sub>N</sub><sub>N</sub>
M


M  N N
M<2 ?


M<2 ?


M


M <sub></sub><sub></sub> M -1 ; i M -1 ; i  0 0


Tráo đổi a


Tráo đổi a<sub>i</sub><sub>i</sub> và a và a<sub>i+1</sub><sub>i+1</sub>



i


i <sub></sub><sub></sub> i + 1 i + 1
i > M ?


i > M ?


-<sub>Đưa ra A</sub><sub>Đưa ra A</sub>
-<sub>Kết thúc</sub><sub>Kết thúc</sub>
đúng


đúng


đúng


đúng saisai
sai
sai


đúng
đúng


<i><b>Sơ đồ khối</b></i>


a


a<sub>i</sub><sub>i</sub> > a > a<sub>i+1</sub><sub>i+1</sub> ? ?


</div>
<span class='text_page_counter'>(14)</span><div class='page_container' data-page=14>

04/11/21 <sub>§ 4. BÀI TỐN VÀ THUẬT TỐN</sub> <sub>14</sub>



<b>§4. </b>



<b>§4. </b>

<b>§4. </b>

<b>BÀI TỐN VÀ THUẬT TỐN</b>

<b>BÀI TỐN VÀ THUẬT TỐN</b>



</div>
<span class='text_page_counter'>(15)</span><div class='page_container' data-page=15>

<i><b>Ví dụ 3. </b></i>

<i><b><sub>Ví dụ 3. </sub></b></i>

Bài tốn tìm kiếm

<sub>Bài tốn tìm kiếm</sub>



<sub>Cho dãy A gồm N số nguyên, đôi một </sub><sub>Cho dãy A gồm N số nguyên, đôi một </sub>


khác nhau: a


khác nhau: a<sub>1</sub><sub>1</sub>, a, a<sub>2</sub><sub>2</sub>,..., a,..., a<sub>N</sub><sub>N</sub> và một số nguyên k. và một số nguyên k.
Cần biết có hay khơng chỉ số i (1


Cần biết có hay không chỉ số i (1  i i  N) N)
mà a


mà a<sub>i</sub><sub>i</sub> = k. Nếu có hãy cho biết chỉ số đó. = k. Nếu có hãy cho biết chỉ số đó.


<sub>Số nguyên k được gọi là khóa tìm kiếm </sub><sub>Số ngun k được gọi là khóa tìm kiếm </sub>


(gọi tắt là khóa).


(gọi tắt là khóa).


<b>3. Một số ví dụ về thuật tốn</b>



</div>
<span class='text_page_counter'>(16)</span><div class='page_container' data-page=16>

<i><b>Thuật tốn Tìm kiếm tuần tự </b></i>

<i><b><sub>Thuật tốn Tìm kiếm tuần tự </sub></b></i>



<i><b>(Sequential Search)</b></i>




<i><b>(Sequential Search)</b></i>



<i><b><sub>Xác định bài toán</sub></b></i>

<i><b><sub>Xác định bài toán</sub></b></i>



<i><b><sub>Input</sub></b></i>

<i><b><sub>Input</sub></b></i>

<i><sub>:</sub></i>

<i><sub>:</sub></i>

<sub>Dãy A gồm N số nguyên đôi</sub><sub>Dãy A gồm N số nguyên đôi</sub> <sub>một </sub><sub>một </sub>


khác nhau a


khác nhau a<sub>1</sub><sub>1</sub>, a, a<sub>2</sub><sub>2</sub>,..., a,..., a<sub>N</sub><sub>N</sub> và số nguyên k; và số nguyên k;


<i><b>Output</b></i>

<i><b><sub>Output</sub></b></i>

<i>:</i>

<i><sub>:</sub></i>

<sub>Chỉ số i mà a</sub><sub>Chỉ số i mà a</sub><sub>i</sub><sub>i</sub><sub> = k hoặc thông báo </sub><sub> = k hoặc thơng báo </sub>


khơng có số hạng nào của dãy A có giá trị bằng
khơng có số hạng nào của dãy A có giá trị bằng


k.
k.


<b>3. Một số ví dụ về thuật tốn</b>



</div>
<span class='text_page_counter'>(17)</span><div class='page_container' data-page=17>

<i><b><sub>Ý tưởng</sub></b></i>

<i><b><sub>Ý tưởng</sub></b></i>

<i><sub>:</sub></i>

<i><sub>:</sub></i>

<sub>thực hiện một cách tự nhiên. Lần </sub><sub>thực hiện một cách tự nhiên. Lần </sub>
lượt từ số hạng thứ nhất,so sánh giá trị số hạng


lượt từ số hạng thứ nhất,so sánh giá trị số hạng


đang xét với khóa cho đến khi hoặc gặp một số


đang xét với khóa cho đến khi hoặc gặp một số



hạng bằng khóa hoặc dãy đã được xét hết và


hạng bằng khóa hoặc dãy đã được xét hết và


không có giá trị nào bằng khố. Trong trường


khơng có giá trị nào bằng khoá. Trong trường


hợp thứ hai dãy A khơng có số hạng nào bằng


hợp thứ hai dãy A khơng có số hạng nào bằng


khố.


khố.


<b>3. Một số ví dụ về thuật tốn</b>



</div>
<span class='text_page_counter'>(18)</span><div class='page_container' data-page=18>

<i><b><sub>Thuật toán</sub></b><b><sub>Thuật toán</sub></b></i>


<i>a) Cách liệt kê</i>
<i>a) Cách liệt kê</i>


<sub>Bước 1: </sub><sub>Bước 1: </sub><sub>Nhập </sub><sub>Nhập </sub><i><sub>N</sub><sub>N</sub></i><sub>, các số hạng </sub><sub>, các số hạng </sub><i><sub>a</sub><sub>a</sub><sub>1</sub><sub>1</sub><sub>, a</sub><sub>, a</sub><sub>2</sub><sub>2</sub><sub>,..., a</sub><sub>,..., a</sub><sub>N</sub><sub>N</sub></i> <sub>và khóa </sub><sub>và khóa </sub><i><sub>k</sub><sub>k</sub></i><sub>;</sub><sub>;</sub>
<sub>Bước 2:</sub><sub>Bước 2:</sub><i><sub> i </sub><sub> i </sub></i><sub></sub><sub></sub><i><sub> 1</sub><sub> 1</sub></i><sub>;</sub><sub>;</sub>


Bước 3: Nếu <sub>Bước 3: Nếu </sub><i>a<sub>a</sub><sub>i</sub><sub>i</sub> = k <sub> = k </sub></i>thì thơng báo chỉ số <sub>thì thơng báo chỉ số </sub><i>i<sub>i</sub></i>, rồi kết thúc;<sub>, rồi kết thúc;</sub>
<sub>Bước 4:</sub><sub>Bước 4:</sub><i><sub> i </sub><sub> i </sub></i><sub></sub><sub></sub><i><sub>i + 1</sub><sub>i + 1</sub></i><sub>;</sub><sub>;</sub>


<sub>Bước 5:</sub><sub>Bước 5:</sub><sub> Nếu </sub><sub> Nếu </sub><i><sub>i </sub><sub>i </sub></i><sub>> </sub><sub>> </sub><i><sub>N </sub><sub>N </sub></i><sub>thì thơng báo dãy A khơng có số </sub><sub>thì thơng báo dãy A khơng có số </sub>


hạng nào có giá trị bằng


hạng nào có giá trị bằng <i>kk</i>, rồi kết thúc;, rồi kết thúc;
<sub>Bước 6:</sub><sub>Bước 6:</sub><sub> Quay lại bước 3. </sub><sub> Quay lại bước 3. </sub>


<b>3. Một số ví dụ về thuật toán</b>



</div>
<span class='text_page_counter'>(19)</span><div class='page_container' data-page=19>

Nhập N ; a<sub>1</sub>,a<sub>2</sub>,..a<sub>N</sub> ,k
i  1


a<sub>i</sub> = k ?
i  i + 1
i > N ?


-Đưa ra i
-Kết thúc


đúng
đúng


sai
sai


sai
sai


đúng
đúng


<i><b>b) Sơ đồ khối</b></i>



</div>
<span class='text_page_counter'>(20)</span><div class='page_container' data-page=20>

<i><b><sub>Thuật tốn Tìm kiếm nhị phân (Binary Search): </sub></b><b><sub>Thuật tốn Tìm kiếm nhị phân (Binary Search): </sub></b></i>


<i>Cho dãy tăng gồm N số nguyên </i>


<i>Cho dãy tăng gồm N số nguyên </i>aa<sub>1</sub><sub>1</sub>, a, a<sub>2</sub><sub>2</sub>,..., a,..., a<sub>N</sub><sub>N</sub> <i>và số và số </i>
<i>nguyên k. Tìm i mà </i>


<i>nguyên k. Tìm i mà </i>aa<sub>i</sub><sub>i</sub> = k ? = k ?


<i><b><sub>Xác định bài toán</sub></b><b><sub>Xác định bài toán</sub></b></i>


<i><b>Input</b><b><sub>Input</sub></b>: <sub>: </sub></i>Dãy tăng a<sub>Dãy tăng a</sub><sub>1</sub><sub>1</sub>, a<sub>, a</sub><sub>2</sub><sub>2</sub>,..., a<sub>,..., a</sub><sub>N</sub><sub>N</sub> và số nguyên k;<sub> và số nguyên k;</sub>


<i><b>Output</b><b><sub>Output</sub></b>: <sub>: </sub></i>Chỉ số i mà a<sub>Chỉ số i mà a</sub><sub>i</sub><sub>i</sub> = k hoặc thông báo không <sub> = k hoặc thơng báo khơng </sub>


có số hạng nào của dãy có giá trị bằng k.


có số hạng nào của dãy có giá trị bằng k.


<b>3. Một số ví dụ về thuật toán</b>



</div>
<span class='text_page_counter'>(21)</span><div class='page_container' data-page=21>

<i><b><sub>Ý tưởng</sub></b></i>

<i><b><sub>Ý tưởng</sub></b></i>

<i><sub>: </sub></i>

<i><sub>: </sub></i>



So sánh k với số hạng a



So sánh k với số hạng a

<sub>Giua</sub><sub>Giua</sub>

ở "giữa

<sub> ở "giữa </sub>


dãy", trong đó Giua = (dau + cuoi)/2.



dãy", trong đó Giua = (dau + cuoi)/2.




Khi đó, chỉ xảy ra một trong ba trường


Khi đó, chỉ xảy ra một trong ba trường



hợp sau


hợp sau

::


<b>3. Một số ví dụ về thuật tốn</b>



</div>
<span class='text_page_counter'>(22)</span><div class='page_container' data-page=22>

Nếu a<sub>Nếu a</sub><sub>Giua</sub><sub>Giua</sub> = k thì Giua là chỉ số cần tìm. Việc tìm <sub> = k thì Giua là chỉ số cần tìm. Việc tìm </sub>


kiếm kết thúc.


kiếm kết thúc.


Nếu a<sub>Nếu a</sub><sub>Giua</sub><sub>Giua</sub> > k thì tìm tiếp trên dãy a<sub> > k thì tìm tiếp trên dãy a</sub><sub>dau</sub><sub>dau</sub>, a<sub>, a</sub><sub>dau+1</sub><sub>dau+1</sub>,..., a<sub>,..., a</sub><sub>Giua–</sub><sub>Giua–</sub>


1


1


Nếu a<sub>Nếu a</sub><sub>Giua</sub><sub>Giua</sub> < k thì thực hiện tìm kiếm trên dãy a<sub> < k thì thực hiện tìm kiếm trên dãy a</sub><sub>Giua+1</sub><sub>Giua+1</sub>, <sub>, </sub>


a


a<sub>Giua+2</sub><sub>Giua+2</sub>,..., a,..., a<sub>cuoi. </sub><sub>cuoi. </sub>


<sub>Quá trình trên sẽ được lặp lại cho đến khi đã tìm </sub><sub>Quá trình trên sẽ được lặp lại cho đến khi đã tìm </sub>


thấy hoặc phạm vi tìm kiếm bằng rỗng (khơng thấy)



thấy hoặc phạm vi tìm kiếm bằng rỗng (khơng thấy)<i>..</i>

<b>3. Một số ví dụ về thuật toán</b>



</div>
<span class='text_page_counter'>(23)</span><div class='page_container' data-page=23>

<i><b><sub>Thuật toán</sub></b><b><sub>Thuật toán</sub></b></i>


<i>a) </i>


<i>a) <b>Cách liệt kê</b><b>Cách liệt kê</b></i>


Bước 1: Nhập<sub>Bước 1: Nhập</sub> N, dãy <sub> N, dãy </sub>a<sub>a</sub><sub>1</sub><sub>1</sub>, a<sub>, a</sub><sub>2</sub><sub>2</sub>,..., a<sub>,..., a</sub><sub>N</sub><sub>N</sub> và số k ;<sub>và số k ;</sub>
<sub>Bước 2:</sub><sub>Bước 2:</sub><sub> Dau </sub><sub> Dau </sub><sub></sub><sub></sub><sub> 1, Cuoi </sub><sub> 1, Cuoi </sub><sub></sub><sub></sub><sub> N ;</sub><sub> N ;</sub>


<sub>Bước 3:</sub><sub>Bước 3:</sub><sub> Giua </sub><sub> Giua </sub><sub></sub><sub></sub><sub> (dau + cuoi)/2 </sub><sub> (dau + cuoi)/2 </sub><sub>;</sub><sub>;</sub>


Bước 4:<sub>Bước 4:</sub> Nếu a<sub> Nếu a</sub><sub>Giua</sub><sub>Giua</sub> = k thì thơng báo chỉ số <sub> = k thì thơng báo chỉ số </sub>
Giua, rồi kết thúc ;


Giua, rồi kết thúc ;


<b>3. Một số ví dụ về thuật toán</b>



</div>
<span class='text_page_counter'>(24)</span><div class='page_container' data-page=24>

<i><b><sub>Thuật toán</sub></b><b><sub>Thuật toán</sub></b></i>


<i><b>a) Cách liệt kê</b></i>
<i><b>a) Cách liệt kê</b></i>


Bước 5: <sub>Bước 5: </sub>Nếu a<sub>Nếu a</sub><sub>Giua</sub><sub>Giua</sub> > k thì đặt Cuoi <sub> > k thì đặt Cuoi </sub><sub></sub><sub></sub> Giua–1 rồi <sub> Giua–1 rồi </sub>


chuyển đến bước 7;



chuyển đến bước 7;


<sub>Bước 6:</sub><sub>Bước 6:</sub><sub> Dau </sub><sub> Dau </sub><sub></sub><sub></sub><sub> Giua + 1;</sub><sub> Giua + 1;</sub>


<sub>Bước 7:</sub><sub>Bước 7:</sub><sub> Nếu Dau > Cuoi thì thơng báo dãy A </sub><sub> Nếu Dau > Cuoi thì thơng báo dãy A </sub>


khơng có số hạng có giá trị bằng k, rồi kết thúc;


khơng có số hạng có giá trị bằng k, rồi kết thúc;


<sub>Bước 8: Quay lại bước 3.</sub><sub>Bước 8: Quay lại bước 3.</sub>


<b>3. Một số ví dụ về thuật tốn</b>



</div>
<span class='text_page_counter'>(25)</span><div class='page_container' data-page=25>

Nhập N ; a<sub>1</sub>,a<sub>2</sub>,..a<sub>N</sub> ,k


Dau  1; Cuoi  N


a<sub>Giua </sub>= k ?


Cuoi  Giua - 1


-Đưa ra Giua
-Kết thúc
đúng
đúng
sai
sai
sai


sai
đúng
đúng


<i><b>b) Sơ đồ khối</b></i>


-Không có giá trị = k
-Kết thúc


Giua  (Dau+Cuoi)/2


a<sub>Giua </sub>> k ?


Dau  Giua + 1 Dau > Cuoi ?


sai
sai
đúng


</div>
<span class='text_page_counter'>(26)</span><div class='page_container' data-page=26></div>

<!--links-->

×