Hỏi Về Cách Dùng 1 Vòng Lặp Duyệt Mảng 2 Chiều
Có thể bạn quan tâm
- Trang chủ
- AngularJS
- Blog
- Bootstrap
- C / C++
- Cấu trúc dữ liệu & Giải thuật
- Cơ sở dữ liệu
- Codeigniter
- Công cụ lập trình
- CSS
- Học Excel
- HTML
- Java
- Javascript
- jQuery
- Json
- Lập trình mobile
- Laravel
- Linux
- MongoDB
- MySQL
- NodeJS
- Oracle
- Pascal
- PHP
- Python
- React Native
- ReactJS
- Ruby
- SEO
- SQL Server
- Swift
- Visual Basic
- VueJS
- WordPress
- XML
Đố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 ạ
TTmagic viết 18:47 ngày 30/09/2018làm được, nhưng không nên làm, vì nó hại não
Gió viết 18:46 ngày 30/09/2018Em 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:
for (k =0;k< m*n;++k){ i=k/n; j=k%n; } Nguyễn Minh Dũng viết 18:45 ngày 30/09/2018Confirm là không ai “rảnh” làm như thế này nhé.
#include <stdio.h> int main() { int arr[3][3] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; // Print value using double for loop for(int i = 0; i < 3; ++i) { for(int j = 0; j < 3; ++j) { printf("%d ", arr[i][j]); } printf("\n"); } // Print address using double for loop for(int i = 0; i < 3; ++i) { for(int j = 0; j < 3; ++j) { printf("%p ", &arr[i][j]); } printf("\n"); } // Print value using single for loop int *pa = arr; for(int i = 0; i < 3*3; ++i) { printf("%d ", *(pa+i)); if ( (i + 1) % 3 == 0 ) printf("\n"); } // Print address using print address for(int i = 0; i < 3*3; ++i) { printf("%p ", pa+i); if ( (i + 1) % 3 == 0 ) printf("\n"); } } nhatlonggunz viết 18:38 ngày 30/09/2018Confirm là không ai “rảnh” làm như thế này nhé.
Là sao anh, em không hiểu ý anh nói.
Nguyễn Minh Dũng viết 18:39 ngày 30/09/2018Ý 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
nhatlonggunz viết 18:39 ngày 30/09/2018Vậ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 ?
Nguyễn Minh Dũng viết 18:48 ngày 30/09/2018Không tối ưu hơn đâu @nhatlonggunz
Mà code phức tạp, nhiều khả năng gây ra lỗi.
viết 18:47 ngày 30/09/2018Ngườ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.
#include<iostream> using namespace std; // bien extern int const ROWS = 2; extern int const COLS = 2; extern int const MATRIX[ROWS*COLS] = { 1 , 2 , 3, 4}; // thay cho mang 2x2 // lay gia tri cua matrix theo hang va cot int matrix(int row, int col) { assert(row >= 0 && row < ROWS); assert(col >= 0 && col < COLS); return MATRIX[(row*COLS) + col]; } int main() { cout<<"matrix[0][0] = "<<matrix(0,0)<<endl; cout<<"matrix[0][1] = "<<matrix(0,1)<<endl; cout<<"matrix[1][0] = "<<matrix(1,0)<<endl; cout<<"matrix[1][1] = "<<matrix(1,1)<<endl; return 0; } Sáng Béo viết 18:42 ngày 30/09/2018cá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ỉ.
lâm phúc tài viết 18:43 ngày 30/09/2018double for loop
Cho em hỏi cái trên ý nghĩa là gì ạ
nhatlonggunz viết 18:47 ngày 30/09/2018Là 2 vòng for, dùng từ double, có nghĩa là đôi, ý muốn nói 2 vòng for đi đôi với nhau (hay ta gọi là lồng nhau)
Tự Nhiên Quên viết 18:48 ngày 30/09/2018em 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
Bình luận về bài viết này Chia sẻ tin đăng đến bạn bè Gửi Messenger Copy link Bài liên quan Cho thuê phòng trọ hà nội | Cho thuê phòng trọ bình thạnh | Cho thuê phòng trọ | Cho thuê nhà trọ ® Ghi rõ nguồn "code24h.com" khi bạn phát hành lại thông tin từ website này. Phiên bản v1.0Từ khóa » Duyệt Mảng 2 Chiều
-
Duyệt Mảng 2 Chiều Trong JavaScript
-
Hỏi Về Cách Dùng 1 Vòng Lặp Duyệt Mảng 2 Chiều - Dạy Nhau Học
-
5.3 Mảng Hai Chiều - Khóa Học C++
-
Bài 54. Mảng 2 Chiều Trong C - Lập Trình Không Khó
-
Các Kỹ Thuật Lập Trình Với Mảng 2 Chiều Và Minh Họa Với C++
-
Các Thuật Toán Cơ Bản Về Mảng Hai Chiều - IViettech
-
Mảng Hai Chiều - Mảng Đa Chiều Trong C++ - CodeLearn
-
Mảng 2 Chiều Trong JavaScript | Học Lập Trình JavaScript
-
Mảng 2 Chiều 2d Array Trong C - Lập Trình Từ Đầu
-
Mảng 2 Chiều Trong C# | How Kteam
-
Đệ Quy Quay Lùi Mảng Hai Chiều - Tài Liệu Text - 123doc
-
[PDF] MẢNG 2 CHIỀU (2D Array)
-
[Lập Trình C++ Cơ Bản] Bài 7 (Phần 2): Mảng Hai Chiều Trong ... - Viblo
-
Mảng 2 Chiều Trong Java Lý Thuyết Và Bài Tập Vận Dụng - IT For Student