(Tiểu luận) chuyên đề công nghệ phần mềm đề tài tìm hiểu thuật toán tìm kiếm tuyếntính trong ngôn ngữ lập trình c

26 9 0
(Tiểu luận) chuyên đề công nghệ phần mềm  đề tài tìm hiểu thuật toán tìm kiếm tuyếntính trong ngôn ngữ lập trình c

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

HỌC VIỆN CƠNG NGHỆ BƢU CHÍNH VIỄN THƠNG Khoa Cơng Nghệ Thông Tin         CHUYÊN ĐỀ CÔNG NGHỆ PHẦN MỀM Giảng viên hƣớng dẫn: Nguyễn Đình Hiến Sinh viên thực hiện: Họ tên: Vũ Đình Huấn Mã sinh viên: B19DTCN023 Lớp: D19TXCN02-B Tháng 02/2023 MỤC LỤC MỤC LỤC LỜI CẢM ƠN LỜI NÓI ĐẦU CHƢƠNG I: GIỚI THIỆU CHUNG 1.1 Lý chọn đề tài 1.2 Giới thiệu ngơn ngữ lập trình C# 1.2.1 Khái niệm 1.2.2 Đặc trƣng 1.2.3 Các kiểu liệu 1.2.4 Soạn thảo biên dịch chƣơng trình C# 1.2.5 Ƣu điểm 10 1.2.6: Nhƣợc điểm 11 CHƢƠNG II: THUẬT TỐN TÌM KIẾM TUẦN TỰ 11 2.1 Đặt vấn đề 11 2.1 Tƣ tƣởng thuật toán 12 2.2 Nội dung cách cài đặt thuật toán 13 2.3 Cài đặt thuật toán 13 2.4 Đánh giá thuật toán 15 2.4.1 Đặc điểm 16 2.4.2 Hiệu 16 2.4.3 Ƣu điểm 16 2.4.4 Nhƣợc điểm 17 CHƢƠNG III: ÁP DỤNG THUẬT TOÁN TÌM KIẾM 17 3.1 Bài toán 17 3.2 Hƣớng giải 17 KẾT LUẬN 21 LỜI CẢM ƠN ••• Sau thời gian học tập, nghiên cứu Học viện Cơng nghệ B ƣu viễn thông, đƣợc giúp đỡ hỗ trợ thầy cô giảng dạy, thầy cô khoa Cơng nghệ thơng tin, đến em hồn thành xong báo cáo môn học Chuyên đề Công nghệ phần mềm với đề tài: Tìm hiểu thuật tốn tìm kiếm tuyến tính ngơn ngữ lập trình C# Em xin chân thành cảm ơn quý thầy cô giúp đỡ em thực báo cáo Đặc biệt thầy Nguyễn Đình Hiến tận tình hƣớng dẫn, giúp đỡ, bảo em suốt thời gian thực Đồng thời, em xin cảm ơn bạn bè, đồng nghiệp gắn bó, chia sẻ nhiều kinh nghiệm, kiến thức để hồn thiện báo cáo mơn học Tuy nhiên, thời gian có hạn nên em khơng thể tìm hiểu sâu thuật tốn nhƣ khả hỗ trợ ngơn ngữ lập trình C#, kỹ thuật lập trình báo cáo Trong trình xây dựng báo cáo, tránh khỏi thiếu xót, mong nhận đƣợc thơng cảm q thầy, cô bạn Em xin chân thành cảm ơn! Lào Cai, ngày 08 tháng 03 năm 2023 Sinh viên thực Vũ Đinh Huấn Tìm hiểu thuật tốn tìm kiếm ngơn ngữ C# LỜI NĨI ĐẦU Cơng nghệ thơng tin ngành có chuyển biến tích cực năm qua triển khai ứng dụng công nghệ thông tin đời sống, xã hội doanh nghiệp Việt Nam trở thành quốc gia có số l ƣợng ng ƣời dùng Internet cao giới Các hoạt động doanh nghiệp, cá nhân đã, sử dụng mạng Internet tảng kết nối khác Tình hình phát triển ngành Công nghệ thông tin Việt Nam có nhiều b ƣớc tiến vƣợt bậc 20 năm qua Theo thống kê vào năm 2000, ngành Công nghệ thông tin chiếm khoảng 0.5% GDP nƣớc, thua hẳn so với ngành nh ƣ nông nghiệp, thƣơng mại, Tuy nhiên vịng thập kỷ, ngành Cơng nghệ thơng tin có bƣớc phát triển nhảy vọt đáng kinh ngạc: Doanh thu ngành vào năm 2019 đạt 120 tỷ USD, gấp 400 lần so với năm 2000 tƣơng ứng mức tăng bình quân 37%/năm suốt 19 năm; đóng góp vào 14,3% GDP Việt Nam, gấp 28 lần so với năm 2000; suất lao động ngành Công nghệ thông tin cao gấp 7,6 lần suất lao động bình quân n ƣớc… tiếp tục tăng trƣởng, đạt 124,67 tỷ USD vào năm 2020 136,15 tỷ USD vào năm 2021 Năm 2022, ngành công nghiệp công nghệ số tiếp tục điểm sáng kinh tế Việt Nam với doanh thu ƣớc đạt 148 tỷ USD, tăng trƣởng 8.7% so với năm 2021, đóng góp 34 tỷ USD vào GDP nƣớc; số lƣợng doanh nghiệp 70.000 Ƣớc tính đến hết tháng 2/2023, số doanh nghiệp cơng nghệ số đăng ký hoạt động đạt khoảng 70.800 Đến nay, nhiều địa ph ƣơng toàn quốc ứng dụng công nghệ số vào hoạt động quản lý kinh tế, xã hội Cùng với phát triển mạnh mẽ công nghệ số, liệu số ngày phổ biến trở lên quan trọng Đôi liệu l ƣu trữ truy xuất ứng dụng gặp nhiều khó khăn, nhiều thời gian, cơng sức để tìm kiếm Chúng ta cần phải phƣơng án tìm kiếm liệu cách xác, nhanh chóng thực hiệu Trong năm qua, nhà khoa học máy tính tạo nhiều thuật tốn tìm kiếm để đáp ứng nhu cầu sử dụng, khai thác thông tin với mục đích cho kết tốt, đáp ứng nhu cầu ng ƣời sử dụng Trong báo cáo này, em tìm hiểu tốn tìm kiếm nghiên cứu thuật tốn tìm kiếm đƣợc áp dụng tốn ứng dụng cơng nghệ thơng tin thực tiễn Tìm hiểu thuật tốn tìm kiếm ngơn ngữ C# CHƢƠNG I: GIỚI THIỆU CHUNG 1.1 Lý chọn đề tài Trong hầu hết hệ thống tin học, khai thác, xử lý liệu phải thực thao tác tìm kiếm xử lý thơng tin Chẳng hạn hệ thống tra cứu điểm thi, tra cứu kết số đánh giá,…; việc tra cứu, tìm kiếm kết thi thí sinh, kết đánh giá số,… diễn nhanh chóng xác Thí sinh cần truy cập vào hệ thống tra cứu điểm thi, nhập thông tin nhƣ họ tên, số báo danh,… hệ thống nhanh chóng đƣa kết thi thí sinh mà khơng cần tìm đến trƣờng dự thi để tìm hiểu kết thi Ngƣời dùng cần truy cập vào hệ thống chấm điểm kết thực số chuyển đổi số, nhập thông tin tiêu chí đánh giá cần tìm kiếm, hệ thống nhanh chóng trả lại kết đánh giá số đó, ng ƣời dùng khơng cần di chuyển đến quan, đơn vị chức có thẩm quyền để tìm kiếm, xin thơng tin Đây số ứng dụng tốn tìm kiếm hệ thống tin học Tìm kiếm ln thao tác móng cho nhiều tác vụ tính tốn Tìm kiếm nghĩa tìm hay nhiều mẩu thông tin đ ƣợc l ƣu trữ Thông th ƣờng, thông tin đƣợc chia thành phần tử (record), phần tử có khóa (key) dùng cho việc tìm kiếm Ta ln có khố cho tr ƣớc giống nh ƣ khoá phần tử mà ta cần tìm Mỗi phần tử đƣợc tìm thấy chứa tồn thơng tin để cung cấp cho q trình xử lý Đặc biệt, giai đoạn nay, giai đoạn đẩy mạnh chuyển đổi số theo hƣớng lấy ng ƣời dân làm trung tâm, toàn dân toàn diện; liệu đ ƣợc số hóa với lƣợng thơng tin khổng lồ, đa dạng, từ đơn giản đến phức tạp lĩnh vực Các thuật tốn tìm kiếm đ ƣợc phát huy tối đa khả năng, vận dụng linh hoạt vào việc xử lý, khai thác thông tin, đáp ứng nhu cầu ng ƣời sử dụng Trong báo cáo này, em tìm hiểu tốn tìm kiếm nghiên cứu thuật tốn tìm kiếm, cụ thể phép tìm kiếm (tuyến tính) để đ ƣa đƣợc điểm mạnh, yếu giải thuật, xây dựng ph ƣơng án lựa chọn phù hợp với yêu cầu toán đặt 1.2 Giới thiệu ngơn ngữ lập trình C# 1.2.1 Khái niệm C# (hay C sharp) đƣợc phát triển đội ngũ kỹ sƣ Microsoft vào năm 2000, ngƣời dẫn đầu Anders Hejlsberg Scott Wiltamuth C# ngôn ngữ lập trình đơn giản, an tồn, đại, h ƣớng đối t ƣợng có khả thực thi cao mơi trƣờng NET Tìm hiểu thuật tốn tìm kiếm ngôn ngữ C# C# đƣợc thiết kế cho Common Language Infrastructure (CLI), mà gồm Executable Code Runtime Environment, cho phép sử dụng ngôn ngữ high-level đa dạng tảng cấu trúc máy tính khác C# với hỗ trợ mạnh mẽ NET Framework giúp cho việc tạo ứng dụng Windows Forms hay WPF (Windows Presentation Foundation), trở nên dễ dàng Cho tới #C ngơn ngữ đƣợc đông đảo ngƣời dùng ƣu tiên sử dụng dần trở thành ngơn ngữ lập trình phổ biến giới 1.2.2 Đặc trƣng Các đặc điểm để làm cho C# ngơn ngữ lập trình chun nghiệp đ ƣợc sử dụng rộng rãi: - C# ngôn ngữ đơn giản Nhƣ ta biết ngơn ngữ C# dựng tảng C++ Java nên ngôn ngữ C# đơn giản Nếu thân thiện với C C++ hoậc chí Java, thấy C# giống diện mạo, cú pháp, biểu thức, toán tử chức khác đ ƣợc lấy trực tiếp từ ngôn ngữ C C++, nh ƣng đƣợc cải tiến để làm cho ngôn ngữ đơn giản Một vài cải tiến loại bỏ dƣ thừa, thêm vào cú pháp thay đổi - C# ngôn ngữ đại Một vài khái niệm mẻ mơ hồ với bạn vừa học lập trình, nhƣ xử lý ngoại lệ, kiểu liệu mở rộng, bảo mật mã nguồn v v Đây đặc tính đƣợc cho ngơn ngữ đại cần có Và C# chứa tất đặt tính ta vừa nêu Các bạn dần tìm hiểu đ ƣợc đặt tính qua học series - C# ngơn ngữ lập trình hƣớng đối tƣợng Lập trình hƣớng đối tƣợng (tiếng Anh: Object-oriented programming, viết tắt: OOP) phƣơng pháp lập trình có tính chất Đó tính trừu t ƣợng (abstraction), tính đóng gói (encapsulation), tính đa hình (polymorphism) tính kế thừa (inheritance) C# hỗ trợ cho tất đặc tính Và để hiểu rõ có chƣơng trình bày phần - C# ngơn ngữ từ khóa C# đƣợc mô tả ngôn ngữ sử dụng giới hạn từ khóa (gồm khoảng 80 Tìm hiểu thuật tốn tìm kiếm ngơn ngữ C# Document continues below Discover more An toàn ứng from: dụng web c… AT2021 Học viện Công ng… 291 documents Go to course Toan Cao Cap A1 Học 146 viện CN Bưu chính… An tồn ứng dụng… 100% (8) tham khảo gdqp học 12 phần - có sẵn đáp… An tồn ứng dụng… 100% (5) Tactics toeic audio 17 46 scripts An toàn ứng dụng… 100% (5) TA1-K61Supplementary… An toàn ứng dụng… 100% (5) Dump Splunk Sale 11 Rep - ưedsfg An tồn ứng dụn… 88% (24) từ khóa m ƣời kiểu liệu xây dựng sẵn) Nếu bạn nghĩ ngơnKe ngữ CDT1429 Thiet có nhiều từ khóa mạnh mẽ Điều khơng phải thật, lấy ví dụ ngơn ngữ C# làm điển hình Nếu bạn họcWeb sâu vềCo C#Ban bạn Baigia… thấy 217 ngơn ngữ đƣợc sử dụng để làm nhiệm vụ An toàn 100% (3) ứng dụng… Ngoài đặc điểm cịn số ƣu điểm bật C#: - C# có cấu trúc gần gũi với ngơn ngữ lập trình truyền thống, nên dể dàng tiếp cận học nhanh với C# - C# biên dịch nhiều tảng máy tính khác - C# đƣợc xây dựng tảng C++ Java nên đ ƣợc thừa hƣởng ƣu điểm ngơn ngữ - C# phần NET Framework nên đ ƣợc chống l ƣng lớn đến từ phận - C# có IDE Visual Studio nhiều plug-in vơ mạnh mẽ Nền tảng NET: NET Framework đƣợc Microsoft đ ƣa thức từ năm 2002 .NET Framework hoạt động Windows Những tảng ứng dụng nh ƣ WPF, Winforms, ASP.NET(1-4) hoạt động dựa NET Framework Mono phiên cộng đồng nhằm mang NET đến tảng Windows Mono đƣợc phát triển chủ yếu nhằm xây dựng ứng dụng với giao diện ngƣời dùng đƣợc sử dụng rộng rãi: Unity Game, Xamarin… Cho đến năm 2013, Microsoft định h ƣớng đa tảng phát triển NET core .NET core đƣợc sử dụng ứng dụng Universal Windows platform ASP.NET Core Từ đây, C# đ ƣợc sử dụng để phát triển loại ứng dụng đa tảng hệ điều hành khác (Windows, Linux, MacOS,…) 1.2.3 Các kiểu liệu C# chia thành hai tập hợp kiểu liệu chính: - Kiểu xây dựng sẵn (built-in) mà ngôn ngữ cung cấp cho ng ƣời lập trình - Kiểu đƣợc ngƣời dùng định nghĩa(user-defined) ngƣời lập trình tạo C# phân tập hợp kiểu liệu thành hai loại: - Kiểu liệu giá trị (value): Một biến (variable) đƣợc khai báo với kiểu liệu tham trị vùng nhớ chứa giá trị liệu Tìm hiểu thuật tốn tìm kiếm ngơn ngữ C# Danh sách kiểu liệu tham trị: bool, byte, char, decimal, double, enum, float, int, long, sbyte, short, struct, uint, ulong, ushort - Kiểu liệu tham chiếu (reference): Khác với kiểu liệu tham trị, kiểu liệu tham chiếu lƣu trữ địa tham chiếu tới vùng nhớ chứa giá trị thật Chúng tham chiếu tới vị trí nhớ Có thể sử dụng nhiều biến tham chiếu tới tới vị trí nhớ Nếu liệu vị trí nhớ bị thay đổi số biến, biến khác tự động phản ánh thay đổi giá trị Ví dụ kiểu tham chiếu có sẵn C# là: object, dynamic, string Bạn chuyển đổi từ kiểu liệu sang kiểu liệu khác qua việc boxing unboxing Các kiểu liệu xây dựng sẵn: - object: kiểu liệu tất kiểu khác - string: Đƣợc sử dụng để lƣu trữ giá trị kiểu chữ cho biến - int: Sử dụng để lƣu trữ giá trị kiểu số nguyên - byte: sử dụng để lƣu trữ giá byte - float: Sử dụng để lƣu trữ giá trị số thực - bool: Cho phép biến lƣu trữ giá trị sai - char: Cho phép biến lƣu trữ ký tự Tất kiểu liệu xây dựng sẵn kiểu liệu giá trị ngoại trừ đối tƣợng chuỗi Và tất kiểu ng ƣời dùng định nghĩa ngoại trừ kiểu struct kiểu liệu tham chiếu Chuyển đổi kiểu: Chuyển đổi kiểu #C thƣờng chuyển từ kiểu liệu sang liệu khác nên đƣợc gọi ép kiểu Và có kiểu ép kiểu chủ yếu là: - Ép kiểu ngầm định việc chuyển đổi đ ƣợc thực ngầm dựa vào phƣơng thức an toàn kiểu - Ép kiểu tƣờng minh thực chuyển đổi rõ ràng ng ƣời dùng thực đƣợc thơng qua hàm có sẵn 1.2.4 Soạn thảo biên dịch chƣơng trình C# Có hai cách để soạn thảo, biên dịch thực thi cho ch ƣơng trình C# là: Tìm hiểu thuật tốn tìm kiếm ngơn ngữ C# - Sử dụng chƣơng trình soạn thảo văn sử dụng command line để biên dịch thực thi - Sử dụng môi trƣờng phát triển tích hợp (IDE) Sử dụng chƣơng trình soạn thảo văn - Dùng trình soạn thảo văn để lập trình - Lƣu tập tin dƣới dạng *.cs - Dùng command line để biên dịch thực thi tập tin nguồn Mẫu dòng lệnh biên dịch là: csc.exe [/out: ] Ví dụ: csc.exe /out:C:\PMCSDL.exe d:\ PMCSDL.cs Sử dụng IDE - Dùng IDE VS.NET - Mở chƣơng trình VS.NET đƣợc cài máy - Tạo chƣơng trình - Soạn thảo chƣơng trình cửa sổ - Lƣu tập tin - Biên dịch chạy chƣơng trình Các loại ứng dụng C# Ba ứng dụng ngôn ngữ lập trình C# ứng dụng Windows, ứng dụng web làm thành phần & điều khiển - Chƣơng trình Console (TUI) - Chƣơng trình Windows Form - Chƣơng trình Web Form Kết hợp với ASP NET, C# đóng vài trị xử lý bên dƣới (underlying cod e) Có giao diện đồ họa xử lý kiện Tìm hiểu thuật tốn tìm kiếm ngôn ngữ C# 10 Thực chạy file exe vào lúc MSLI đ ƣợc chuyển hƣớng trở thành ngơn ngữ máy Vì vậy, thơng qua Just In Time Compiler máy tính hiểu đƣợc dòng lệnh mà bạn viết xuất kết nhƣ hình hiển thị Một chƣơng trình C# bao gồm: dòng khoa using cần đầu dòng để thực khai báo cho th ƣ viện, th ƣ viện cụ thể System (một chƣơng trình khai báo nhiều thƣ viện) Dịng thứ 10 khai báo namespace PMCSDL namespace đƣợc xem tập hợp lớp Dòng cần thực khai báo class, thƣờng chứa định nghĩa liệu lệnh để chƣơng trình hoạt động Class có chứa nhiều phƣơng thức định nghĩa cho hành vi Static void Main(string[] args) thực định nghĩa phƣơng thức Main entry point cho tất ch ƣơng trình #C, phƣơng thức biểu diễn trạng thái lớp đƣợc thực thi Dòng /*… */ đƣợc xem comment bên chƣơng trình C# đƣợc sử dụng để thêm ghi giải thích cho đoạn ch ƣơng trình Những ghi thƣờng đƣợc viết nội dung nhiều dịng Khi ch ƣơng trình compiler đoạn comment đƣợc bỏ qua Bạn sử dụng “//” để thực ghi dịng 1.2.5 Ƣu điểm C# đƣợc đánh giá ngôn ngữ lập trình có tính linh hoạt nhiều ƣu điểm bật, cụ thể nhƣ sau: - Là ngơn ngữ có hiệu suất cao, có chạy m ƣợt hệ thống giới hạn dung lƣợng Bởi từ ngày đầu #C đ ƣợc thiết kế cho mục đích thay cho ASM hệ thống có nhớ hạn chế - Có khả thực thuật toán giúp hỗ trợ nhiều kiểu liệu khác nhƣ việc chuyển đổi trở nên dễ dàng Ngôn ngữ lập trình #C cịn có khả cung cấp thƣ viện chuẩn với hàm có chức cơng cụ tốn học - Là loại ngơn ngữ lập trình an tồn khơng cho phép việc chuyển đổi kiểu liệu để giảm tránh đƣợc vấn đề sai lệch xảy - Trong C# cho kết trả thuộc hàm đa phần object Các lỗi lập trình phổ biến nhƣ: gõ nhầm tên, viết sai cấu trúc… đ ƣợc hệ thống cảnh báo mà không cần phải chờ đến lúc chạy Tìm hiểu thuật tốn tìm kiếm ngôn ngữ C# 11 - C# thƣờng đƣợc với Visual Studio đôi đ ƣợc sử dụng nhiều cho việc xây dựng Winform, WPF, website MVC.NET Hiện nay, ngày trở nên phổ biến việc xây dựng tảng cho ứng dụng di động - Việc học dễ dàng cộng đồng C# phát triển rộng mở Chính vậy, nhà phát triển nh ƣ lập trình viên ngơn ngữ C# hỗ trợ, giúp đỡ phát triển kỹ kinh nghiệm C# 1.2.6: Nhƣợc điểm - Khi muốn xài IDE bạn cần phải trả phí sử dụng - Chỉ đem lại hiệu tốt Window, chạy Windows có cài NET Framework Nên đƣợc xem nhƣợc điểm lớn C# - Lập trình Mobile cần phải thơng qua trung gian Xamarin (có phí) - Sử dụng Database tốt với SQL Server CHƢƠNG II: THUẬT TỐN TÌM KIẾM TUẦN TỰ 2.1 Đặt vấn đề Tìm kiếm thƣờng tác vụ hay đ ƣợc sử dụng ch ƣơng trình tác vụ tốn nhiều thời gian Vì thế, việc tổ chức cấu trúc liệu đ ƣa giải thuật tìm kiếm phù hợp có ảnh hƣởng lớn đến hiệu suất ch ƣơng trình Trong việc mơ tả cấu trúc liệu việc tìm kiếm, thuật ngữ th ƣờng đƣợc dùng từ điển bảng ký hiệu Một ví dụ điển hình nh ƣ ta xây dựng hệ thống đánh giá kết thực số cải cách hành chẳng hạn Ở đây, “khố” số “phần tử” diễn giải nghĩa cho số Mỗi phần tử chứa tên số, cách tính điểm, điểm số tối đa đạt đ ƣợc, điểm số tự chấm, điểm thẩm định thông tin khác Bảng ký hiệu từ điển cho ch ƣơng trình phần tử chứa thơng tin mô tả đối tƣợng đ ƣợc đặt tên Giải thuật tìm kiếm thuật tốn lấy đầu vào toán trả kết lời giải cho tốn đó, th ƣờng sau cân nhắc loạt lời giải Cách tốt để tìm thuật tốn tìm kiếm đ ƣa thao tác tổng quát cho ta áp dụng chúng cho tốn tìm kiếm khác Các thao tác gồm: - Khởi tạo cấu trúc liệu (INITIALIZE) - Tìm kiếm hay nhiều phần tử có khố cho (SEARCH) - Chèn thêm phần tử (INSERT) Tìm hiểu thuật tốn tìm kiếm ngơn ngữ C# 12 - Nối lại từ điển để tạo thành từ điển lớn (JOIN) - Sắp xếp từ điển; xuất tất phần tử theo thứ tự đƣợc xếp (SORT) Trong vài trƣờng hợp, thao tác đ ƣợc tổ hợp thành thao tác phức tạp Ví dụ nhƣ thao tác SEARCH_INSERT (tìm kiếm chèn) Thao tác thƣờng đƣợc dùng trƣờng hợp phần tử với khoá không đƣợc phép lƣu trữ cấu trúc liệu Trong nhiều phƣơng pháp, lần xác định khố khơng có cấu trúc liệu trạng thái thủ tục tìm kiếm chứa xác thơng tin cần thiết để chèn thêm phần tử với khoá cho Năm thao tác liệt kê có ứng dụng quan trọng số lớn tổ chức liệu sở đ ƣợc đề nghị để dùng phối hợp thao tác cách hiệu Hiện có nhiều thuật giải tìm kiếm Tuy nhiên, phạm vi báo cáo này, em nghiên cứu phép tìm kiếm hay cịn gọi phép tìm kiếm truyến tính 2.1 Tƣ tƣởng thuật tốn Thuật tốn tìm kiếm (Sequential Search) hay tìm kiếm tuyến tính kỹ thuật tìm kiếm đơn giản Tƣ tƣởng thuật tốn là: Bắt đầu từ phần tử đầu tiên, lần l ƣợt so sánh khóa tìm kiếm với khóa tƣơng ứng phần tử danh sách, tìm thấy phần tử có khóa khóa tìm kiếm duyệt hết danh sách mà ch ƣa thấy Thuật tốn tìm kiếm dễ thực thơng tin lƣu trữ dạng mảng Cơng việc tìm kiếm hoàn thành hai tình huống: - Nếu tìm thấy đối tƣợng có khóa tìm kiếm tập đối t ƣợng ta nói phép tìm kiếm thành cơng (successful) - Nếu khơng tìm thấy đối tƣợng có khóa tìm kiếm tập đối tƣợng ta nói phép tìm kiếm khơng thành cơng (unsuccessful) Điều kiện dừng thuật tốn tìm thấy phần tử cần tìm hết danh sách Ví dụ: Xét dãy số S cần tìm có n phần tử: a[0], a[1], a[2] a[n-1] Giá trị cần tìm x - Bắt đầu từ khố đầu tiên, lần lƣợt so sánh khoá x với khoá tƣơng ứng dãy S - Quá trình tìm kiếm kết thúc tìm đƣợc khố thoả mãn đến hết dãy gặp điều kiện dừng vòng lặp Trong trình duyệt có ghi trùng với Tìm hiểu thuật tốn tìm kiếm ngơn ngữ C# 13 giá trị x đƣa vị trí ghi dãy, duyệt tới cuối mà khơng có ghi trùng giá trị q trình tìm kiếm khơng thành cơng 2.2 Nội dung cách cài đặt thuật toán Giả sử phần tử cần tìm kiếm đƣợc lƣu trữ danh sách S với n phần tử X khóa tìm kiếm Thuật tốn đ ƣợc mơ tả nhƣ sau: Bước 1: Gán i = 0;//duyệt từ đầu mảng Bước 2: while((S[i] != X) && (i < n)) { i = i + 1; } Bước 3: if(i < n) tìm thấy phần tử có khóa X nút i – 1; Bước 4: else khơng tìm thấy phần tử có khóa X; Bước 5: kết thúc Có thể sử dụng cấu trúc lặp khác nhau: Bước 1: Gán i = 0;//duyệt từ đầu mảng Bước 2: for (i = 0; i

Ngày đăng: 26/12/2023, 04:56

Tài liệu cùng người dùng

Tài liệu liên quan