Tôi biết tra cứu mảng có O (1) thời gian, vì vậy nó không thể lặp qua. Chương trình có lưu trữ các vị trí bộ nhớ của các chỉ mục của mảng hay không, làm cách nào để tìm kiếm chỉ mục ngay lập tức?Chương trình định vị chỉ mục của một mảng như thế nào?
Trả lời
phần tử mảng luôn cách nhau ở khoảng cách bình đẳng trong bộ nhớ, vì vậy việc tìm kiếm một yếu tố đưa ra một chỉ số yêu cầu một phép nhân bằng kích thước của phần tử và bổ sung cơ số của mảng trong bộ nhớ. Cả hai hoạt động thường được thực hiện trong không gian của một hướng dẫn duy nhất trong phần cứng bằng cách sử dụng một chế độ địa chỉ thích hợp.
bên dưới ... nó một địa chỉ bộ nhớ + (index postion * kích thước của những điều trong mảng)
Hãy thử điều này,
1. Arrays are consecutive memory locations which are stored in Heap, as Arrays are
objects in java.
2. Assume i have an Array of String as an instance variable
String [] arr = {1,2,3,4,5};
Bây giờ nó như thế này
arr [0] = 1
arr [1] = 2
arr [2] = 3
arr [3] = 4
arr [4] = 5
{1,2,3,4,5} are stored over the heap, and Considering array "arr" as instance
variable, will lives within the object on the heap.
Now
arr sẽ giữ địa chỉ của phần tử đầu tiên của Mảng là 1. "arr" là biến mảng tham chiếu đối tượng, sẽ nằm bên trong đối tượng và {1,2,3,4,5} bên ngoài một nơi nào đó trên heap.
Phần tử mảng được lưu trữ trong khối liên tiếp, nếu chúng phát triển chúng cần được di chuyển đến địa điểm mới. Các phần tử này sau đó được truy cập bằng cách sử dụng một bù đắp từ nơi mảng bắt đầu.
Trong C bạn có thể truy cập vào các yếu tố của chỉ số i trong một mảng gọi một sử dụng hai phương pháp khác nhau:
int arrayElement = a[i];
int arrayElement = (int)(a + i * sizeof(int));
này là nhiều hơn hoặc ít hơn làm thế nào nó được thực hiện trong Java dưới mui xe.
- 1. Mảng chỉ mục MongoDB như thế nào?
- 2. Tomcat định vị thư mục webapps như thế nào?
- 3. Thực hiện mảng Byte như một chương trình mới
- 4. Lấy chỉ mục của một mục trong danh sách mảng;
- 5. Verizon SongID - Chương trình được lập trình như thế nào?
- 6. Tôi nên định nghĩa chương trình con 'tĩnh' trong Perl như thế nào?
- 7. Tính năng định vị của trình duyệt web hoạt động như thế nào?
- 8. Bạn sử dụng chuỗi làm chỉ mục như thế nào?
- 9. Bạn tạo chương trình C++ tự do như thế nào?
- 10. Eclipse kết thúc chương trình đang chạy như thế nào?
- 11. Quy trình xử lý được xác định như thế nào?
- 12. Làm cách nào để xác định và in chỉ mục của giá trị tối đa trong một mảng?
- 13. Làm cách nào để xác định chỉ mục mảng trong Mục tiêu C?
- 14. Trình quản lý tác vụ giết chương trình của tôi như thế nào?
- 15. Ruby Xóa chỉ mục đầu tiên của một mảng
- 16. Làm thế nào để thêm một phần tử vào mảng và thay đổi chỉ mục?
- 17. Eclipse: Chỉ định nhiều thư mục res như chỉ định nhiều thư mục src
- 18. Vị trí thư mục tạm thời Tomcat được xác định như thế nào?
- 19. Xóa các chỉ mục chung của mảng
- 20. GPS Android - chỉ định vị một lần
- 21. Nhận giá trị chỉ mục mảng của 1000 mục lớn nhất trong một mảng bằng LINQ
- 22. Chỉ mục Java Mảng ngoài ranh giới
- 23. Bố cục bộ nhớ của chương trình C/C++ như thế nào?
- 24. Làm thế nào để thêm những thứ vào một chương trình menustrip theo chương trình?
- 25. Tạo một mảng chỉ tới một phần của mảng khác?
- 26. Mảng rspec nên bao gồm như thế nào? một mảng
- 27. Thay thế một đoạn chương trình
- 28. C - làm thế nào để chuyển đổi một con trỏ trong một mảng thành một chỉ mục?
- 29. Bạn sẽ nhận được chỉ mục giá trị thấp nhất trong một mảng int như thế nào?
- 30. Làm thế nào để cho phép chạy chỉ một thể hiện của một chương trình Java tại một thời điểm?