30/09/2018, 16:32
Hỏi về cách dùng 1 vòng lặp duyệt mảng 2 chiều
Đối với người biết cách dùng 1 vòng lặp duyệt mảng 2 chiều.
Mọi người cho em hỏi về cái này ạ, em mới nghe lần đầu.
Cách này làm thế nào ? Nhanh hay chậm hơn so với cách dùng 2 vòng lặp? Nên dùng cách này hay cách cũ (vì trước giờ em chưa thấy ai nói hay làm kiểu này).
Cám ơn mọi người ạ
Bài liên quan
làm được, nhưng không nên làm, vì nó hại não
Em có thể dùng 1 vòng lặp bằng cách tính chỉ số của nó theo thứ tự duyệt:
Giả sử mảng kích thước m*n
mang[i][j] <=> thứ tự = i*n+j
duyệt bằng 1 vòng
for
:Confirm là không ai “rảnh” làm như thế này nhé.
Là sao anh, em không hiểu ý anh nói.
Ý là anh viết chương trình mẫu sử dụng một vòng lặp để lặp qua mảng 2 chiều rồi đấy, em xem thử đi.
Nhưng mà không có ai làm như vậy cả. Chương trình anh viết chỉ là demo thôi
Vậy mình có nên dùng cách đó không anh, và cách đó có tối ưu hơn (chạy nhanh hơn) cách 2 vòng lặp không ?
Không tối ưu hơn đâu @nhatlonggunz
Mà code phức tạp, nhiều khả năng gây ra lỗi.
Người ta chỉ sử dụng mảng 1 chiều thay cho mảng 2 chiều và có thể dùng 1 vòng for duyệt hết cả mảng. Ví dụ đơn giản để tạo mảng 1 chiều mà sử dụng như mảng 2 chiều như thế này.
cái này trước làm mảng động 2 chiều dùng con trỏ e từng làm nè, nhưng thầy giáo hướng dẫn lại cách chạy 2 vòng for. thật ra thì 2 vòng này như nhau, đều có độ phức tạp o(n^2) nhỉ.
Cho em hỏi cái trên ý nghĩa là gì ạ
Là 2 vòng
for
, dùng từ double, có nghĩa là đôi, ý muốn nói 2 vòngfor
đi đôi với nhau (hay ta gọi là lồng nhau)em cũng đang băng khoăn nên em có viết 1 bài anh dành thời gian xem được không cảm ơn anh
http://daynhauhoc.com/t/cach-nhanh-co-that-su-nhanh-trong-sap-xep-mang-2-chieu/4293