Sắp xếp mảng bằng thuật toán chèn

MỤC LỤC

Minh họa thuật toán

Để sắp xếp một mảng có kích thước n theo thứ tự tăng dần

Từ phần tử tiếp theo, chèn nó vào vị trí thích hợp tại nửa đã sắp sao cho nó vẫn được sắp. ● Tìm cách chèn phần tử a vào vị trí thích hợp của đoạn đã được sắp để có i.

Mô tả thuật toán

  • Các thuật toán Tìm Kiếm
    • Chuyển Dạng

      Nó được định nghĩa như bên dưới (để sắp xếp thứ tự tăng dần). Bước 1: Nếu giá trị tại chỉ mục 0 lớn hơn giá trị ở chỉ mục cuối cùng, hoán đổi chúng. b) Stooge sắp xếp 2/3 cuối cùng của mảng. Heap sort là một kỹ thuật sắp xếp dựa trên so sánh dựa trên cấu trúc dữ liệu Binary Heap. Nó tương tự như sắp xếp lựa chọn trong đó đầu tiên chúng ta tìm phần tử tối thiểu và đặt phần tử tối thiểu ở đầu.

      Vì một đống nhị phân là một cây nhị phân hoàn chỉnh, nó có thể dễ dàng được biểu diễn dưới dạng một mảng và biểu diễn dựa trên mảng là không gian hiệu quả. Binany Search (Tìm kiếm nhị phân) là một giải thuật tìm kiếm nhanh với độ phức tạp thời gian chạy là Ο(log n). Giải thuật tìm kiếm nhị phân làm việc dựa trên nguyên tắc chia để trị (Divide and Conquer).

      Để giải thuật này có thể làm việc một cách chính xác thì tập dữ liệu nên ở trong dạng đã được sắp xếp. - Binary Search tìm kiếm một phần tử cụ thể bằng cách so sánh phần tử tại vị trí giữa nhất của tập dữ liệu. Nếu phần tử cần tìm là lớn hơn giá trị phần tử giữa thì phần tử cần tìm được tìm trong mảng con nằm ở bên phải phần tử giữa; nếu không thì sẽ tìm ở trong mảng con nằm ở bên trái phần tử giữa.

      Bởi vì giá trị cần tìm là lớn hơn nên phần tử cần tìm sẽ nằm ở mảng con bên phải phần tử giữa. Chúng ta thay đổi giá trị ban-đầu thành chỉ-mục-giữa + 1 và lại tiếp tục tìm kiếm giá trị chỉ-mục-giữa. Giá trị tại chỉ mục 7 là không kết nối, và ngoài ra giá trị cần tìm là nhỏ hơn giá trị tại chỉ mục 7 do đó chúng ta cần tìm trong mảng con bên trái của chỉ mục giữa này.

      Binary Search chia đôi lượng phần tử cần tìm và do đó giảm số lượng phép so sánh cần thực hiện nên giải thuật tìm kiếm này được thực hiện khá nhanh. Mỗi phần tử đều được kiểm tra và nếu tìm thấy bất kỳ kết nối nào thì phần tử cụ thể đó được trả về;. Bắt đầu từ phần tử ngoài cùng bên trái của arr [] và lần lượt so sánh x với từng phần tử của arr [].

      ● Nó được gọi là cây tìm kiếm nhị phân vì nó có thể được sử dụng để tìm kiếm sự hiện diện của một phần tử trong thời gian O(log (n)). # Quay lại danh sách các phần tử if self.__value is not None: # Truy cập nút bên trái trước nếu có.

      Kết Quả

      • Đinh giá biểu thức số học

        - Trong cách duyệt này, cây con bên trái được truy cập đầu tiên, sau đó là nút gốc và sau đó là cây con bên phải. - Nếu một cây nhị phân được duyệt trung thứ tự, kết quả tạo ra sẽ là các giá trị khóa được sắp xếp theo thứ tự tăng dần. Với phương thức duyệt trung thứ tự, chúngA ta bắt đầu từ nút gốc , di chuyển tới cây con bên trái của nút gốc.

        - Trong cách thức duyệt hậu thứ tự trong cây nhị phân, nút gốc của cây sẽ được truy cập cuối cùng, do đó bạn cần chú ý. Đầu tiên, chúng ta duyệt cây con bên trái, sau đó sẽ duyệt cây con bên phải và cuối cùng là duyệt nút gốc. Chúng ta bắt đầu từ , và theo cách duyệtA A hậu thứ tự, đầu tiên chúng ta truy cập cây con bên trái.

        - Trong cách thức duyệt tiền thứ tự trong cây nhị phân, nút gốc được duyệt đầu tiên, sau đó sẽ duyệt cây con bên trái và cuối cùng sẽ duyệt cây con bên phải. Chúng ta bắt đầu từ , và theo cách thứcA A duyệt tiền thứ tự, đầu tiên chúng ta truy cập chính nút gốc này và sau đó di chuyểnA tới nút con bên trái của nó. + Đầu tiên trình biên dịch quét biểu thức để đánh giá biểu thức b * c, sau đó quét lại biểu thức để thêm a vào biểu thức đó.

        Tốt hơn là chuyển đổi biểu thức sang dạng hậu tố (hoặc tiền tố) trước khi đánh giá. Các biểu thức postfix có thể được đánh giá dễ dàng bằng cách sử dụng một ngăn xếp. Chúng tôi sẽ đề cập đến đánh giá biểu thức postfix trong một bài đăng riêng biệt.

        1 Nếu mức độ ưu tiên của toán tử được quét lớn hơn mức ưu tiên của toán tử trong ngăn xếp (hoặc ngăn xếp trống hoặc ngăn xếp chứa dấu '('), hãy đẩy nó. 2Khác, Bật tất cả các toán tử từ ngăn xếp lớn hơn hoặc bằng được ưu tiên hơn so với toán tử được quét. (Nếu bạn gặp phải dấu ngoặc đơn trong khi xuất hiện thì hãy dừng lại ở đó và đẩy toán tử đã quét vào ngăn xếp.).