Máy vi tínhLập trình

Sắp xếp theo lựa chọn

Một cách quan trọng để làm việc với dữ liệu là sắp xếp. Việc sử dụng nó không chỉ tăng tốc độ mà còn làm đơn giản hóa rất nhiều điều cần thiết và quan trọng trong lĩnh vực lập trình. Hạn chế xoá khái niệm này trong môi trường lập trình viên là việc sắp xếp các bản ghi trong cơ sở dữ liệu.

Các phương pháp phân loại có liên quan đến ngày này, mặc dù tiến bộ kỹ thuật đã được bổ sung bằng phương pháp tính toán hiện đại . Được biết đến trong nhà khoa học của ông D. Knuth lập luận rằng gần một nửa thời gian trong công việc xử lý dữ liệu đang bận rộn phân loại chúng. Ông chỉ ra ba lý do để giải thích sự kiện này:

  1. Sắp xếp theo sự lựa chọn và các phương pháp khác là rất rộng rãi được sử dụng.
  2. Thuật toán của nó thường được sử dụng mà không cần đặc biệt.
  3. Một mô hình không hoàn hảo được sử dụng để giải quyết các nhiệm vụ được đặt.

Để tăng tốc quá trình xử lý dữ liệu, trước hết cần tìm ra giải pháp cho những vấn đề này. Các lập trình viên cố gắng tạo ra một cấu trúc mà chính bản thân nó có thể sử dụng các thuật toán khi cần thiết. Nếu nó được tạo ra, sau đó làm việc với một số lượng lớn dữ liệu sẽ được tăng tốc đáng kể và tài nguyên đáng kể sẽ được lưu trong máy tính. Nhưng cho đến nay điều này đã không xảy ra, và chúng tôi sẽ xem xét các phương pháp phân loại tồn tại cho đến nay.

Tất cả đều được chia thành nội bộ hoặc bên ngoài. Bản chất của phương pháp đầu tiên là tất cả các bản ghi được sắp xếp được đặt trong bộ nhớ RAM của máy. Nhưng khi điều này không xảy ra, các quy trình phân loại bên ngoài là bắt buộc và thường chúng được xây dựng trên các phương pháp được đề cập đầu tiên chỉ với các bổ sung nhỏ.

Sắp xếp theo sự lựa chọn, sẽ được thảo luận, đề cập đến nội bộ. Cần phải chi tiết hơn về nó, vì phương pháp chế biến này cho phép phân loại linh hoạt và có lợi nhuận hơn. Tất cả các phương pháp của nó được chia thành 4 nhóm chính:

  1. Phân loại bằng cách chèn.
  2. Xử lý dữ liệu bằng cách đếm.
  3. Quá trình trao đổi.
  4. Sắp xếp theo sự lựa chọn.

Cần lưu ý rằng không có sự phân biệt rõ ràng giữa chúng, chúng có mối liên hệ chặt chẽ và rất giống nhau. Điều này gây ra một kết nối nhất định trong công việc của họ. Ví dụ đơn giản nhất của làm việc với xử lý dữ liệu là phân loại bằng cách đếm. Đó là, như nó là, cơ sở cho những người khác, nhưng nó rất ít được sử dụng ngày hôm nay. Một phương pháp khác - chèn - là quan trọng hơn. Ý tưởng của ông là chìa khóa cụ thể được xem xét được đặt vào vị trí được gán cho nó. Nhưng ở đây có một số bất tiện và điều này được phản ánh tiêu cực trong công việc trên một số lượng lớn hồ sơ. Nhiều phương pháp xử lý dữ liệu rất hiệu quả có mặt trong việc phân loại trao đổi. Phổ biến nhất và thị giác trong nhóm này là cái gọi là phương pháp bong bóng. Làm việc trong nó được xây dựng theo thuật toán sau: so sánh các bản ghi tiếp theo được thực hiện theo tuần tự và, nếu giá trị của một trong số chúng lớn hơn, chúng chỉ đơn giản là thay đổi địa điểm. Quá trình này diễn ra cho đến khi hoàn thành đặt hàng.

Và, cuối cùng, một trong những điều quan trọng nhất, nhưng đồng thời, cách chế biến các cơ sở dữ liệu không biến đổi được sắp xếp theo sự lựa chọn. Như đã đề cập ở trên, nó thuộc về nhóm nội bộ và có thể kết nối nhiều loại trên cơ sở của nó. Bản chất của phương pháp là một sự lựa chọn, và nhiều, một phần tử. Các hành động được thực hiện theo thứ tự sau: phần tử nhỏ nhất từ danh sách được chọn, sau đó nó sẽ được gửi đến khu vực đầu ra và giá trị của nó được thay thế bằng nhiều hơn tất cả các khác. Chuỗi các hành động được lặp lại cho đến khi tất cả các dữ liệu trong danh sách được chọn đầy đủ.

Rõ ràng là việc thực hiện các thuật toán sẽ yêu cầu khả năng hiển thị của tất cả các phần tử, và ngoài ra, khu vực để xuất dữ liệu. Và ở đây có cách tự nhiên nhất - phân loại này là một lựa chọn đơn giản, nghĩa là chia tách danh sách thành nhiều. Với nó, bạn nên chọn phần tử nhỏ nhất của mảng và trao đổi nó với phần tử đầu tiên. Trên những phần tử còn lại, các thao tác như vậy được thực hiện lại cho đến khi hoàn thành sự phù hợp.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 vi.unansea.com. Theme powered by WordPress.