Mảng một chiều là kiểu dữ liệu được sử dụng phổ biến trong lập trình dùng để chứa danh sách các phần tử hay đối tượng. Chính vì vậy, cũng có rất nhiều bài toán liên quan đến kiểu dữ liệu này. Trong loạt bài này chúng tôi giới thiệu cùng các bạn các bài toán cơ bản trên mảng một chiều như sau:

  • Tìm một phần tử trong mảng
  • Tìm phần tử lớn nhất, bé nhất
  • Sắp xếp mảng

Đây là các bài toán thường gặp, với hy vọng sẽ giúp bạn tự tin hơn khi làm việc với mảng một chiều.

Bài 1: Viết chương trình khởi tạo một mảng n phần tử số nguyên, sau đó nhập vào một phần tử x nào đó và kiểm tra xem phần tử x đã có trong mảng hay chưa?

Phân tích và tìm cách giải

  • Đầu vào: mảng các phần tử a[] ={1,2,3,7,9,12,15}, giá trị x
  • Đầu ra: In ra thông báo x có trong mảng hay chưa?
  • Phân tích:
    • Cần duyệt qua các phần tử của mảng, rồi so sánh x và các giá trị trong mảng.
    • Nếu xuất hiện thì thông báo tìm thấy và dừng

Các bước thực hiện:

  • Khởi tạo mảng a[], khởi tại biến cờ found = false (chưa tìm thấy)
  • Nhập vào giá trị x
  • Cho lặp biến i từ 0 đến n-1, với n là kích thước của mảng
    • Nếu x=a[i]
    • Dựng cờ đã tìm thấy found=true
    • Dừng vòng lặp / Việc dừng vòng lặp không cần thiết sẽ giúp tăng hiệu năng của thuật toán.
  • Căn cứ vào kết quả biến found để thông báo kết quả có tìm thấy hay không

Cách biểu diễn thuật toán

Trong trường hợp này, tôi sử dụng ngôn ngữ giả.

Declare int a[]={1,2,3,7,9,12,15},x, i

boolean found=false

Input x

Loop i=0 to a.lengh -1

   If(x=a[i])

      found = true

      Break //Thoát khỏi vòng lặp

If (found)

   Print ‘X có trong vòng lặp’

Else

   Print ‘X không có trong vòng lặp’

 

Bài tiếp: Tìm phần tử lớn nhất trên mảng

Bài trước: Bài tập về thuật toán số học

Comments



Blog này nhằm mục đích chia sẻ các kiến thức thực tế liên quan đến ngành công nghiệp phần mềm nhằm giúp các bạn trẻ định hướng tốt hơn trong việc chọn lựa nghề nghiệp của mình. Chúng tôi rất mong nhận được sự đóng góp, chia sẽ của các anh chị có kinh nghiệm cũng như các bạn trẻ.

 Học thuật toán

Hướng dẫn học thuật toán

 Thiết kế Cơ sở dữ liệu

Hướng dẫn thiết kế cơ sở dữ liệu.

 Học lập trình

Hướng dẫn dành cho người mới học lập trình.

 Hot or Not

Phân tích xu hướng công nghệ lập trình

 Phân tích thiết kế hệ thống

Phân tích và thiết kế hệ thống phần mềm

 Scrum Methodology

Bàn về mô hình phát triển phần mềm.