Hoán đổi hai từ Python

[19, 65, 23, 90]
2
[19, 65, 23, 90]
0
[19, 65, 23, 90]
5_______0_______0_______0_______7
[19, 65, 23, 90]
8
[19, 65, 23, 90]
0
[19, 65, 23, 90]
0_______0_______0
[19, 65, 23, 90]
2

Show

    [19, 65, 23, 90]
    2
    [19, 65, 23, 90]
    4
    [19, 65, 23, 90]
    0

     

    [19, 65, 23, 90]
    6

    [19, 65, 23, 90]
    7
    [19, 65, 23, 90]
    8
    [19, 65, 23, 90]
    9
    [19, 65, 23, 90]
    0_______0_______1
    [19, 65, 23, 90]
    2
    [19, 65, 23, 90]
    1
    [19, 65, 23, 90]
    4
    [19, 65, 23, 90]
    1
    [19, 65, 23, 90]
    6
    [19, 65, 23, 90]
    7

    [19, 65, 23, 90]
    8_______0_______8
    [19, 65, 23, 90]
    0
    [19, 65, 23, 90]
    1
    [19, 65, 23, 90]
    2

     

    [19, 65, 23, 90]
    3
    [19, 65, 23, 90]
    4
    [19, 65, 23, 90]
    7_______0_______6
    [19, 65, 23, 90]
    7
    [19, 65, 23, 90]
    0
    [19, 65, 23, 90]
    9
    [19, 65, 23, 90]
    7
    [19, 65, 23, 90]
    0# Python3 program to swap elements2

    đầu ra.  
     

    [19, 65, 23, 90]

    Thời gian phức tạp. O(1), để sử dụng các hoạt động liên tục
    Không gian phụ trợ. O(1), để sử dụng không gian thừa không đổi

      
    Cách tiếp cận #2. Sử dụng danh sách sẵn có. hàm pop()
    Pop phần tử tại pos1 và lưu trữ nó trong một biến. Tương tự, bật phần tử tại pos2 và lưu nó vào một biến khác. Bây giờ hãy chèn hai phần tử đã xuất hiện vào vị trí ban đầu của nhau
     

    Python3




    # Python3 program to swap elements

    # at given positions

     

    # Swap function

    def swapPositions(

    [19, 65, 23, 90]
    0
    [19, 65, 23, 90]
    1

    [19, 65, 23, 90]
    2

    [19, 65, 23, 90]
    2# at given positions2

    [19, 65, 23, 90]
    2# at given positions4
    [19, 65, 23, 90]
    8
    [19, 65, 23, 90]
    0# at given positions7

    [19, 65, 23, 90]
    2# at given positions9
    [19, 65, 23, 90]
    8
    [19, 65, 23, 90]
    0# Swap function2
    [19, 65, 23, 90]
    7
    [19, 65, 23, 90]
    0# Swap function5

    # Swap function6

    [19, 65, 23, 90]
    2# Swap function8

    [19, 65, 23, 90]
    2
    [19, 65, 23, 90]
    0def1

    [19, 65, 23, 90]
    2
    [19, 65, 23, 90]
    0def4

    [19, 65, 23, 90]
    2

    [19, 65, 23, 90]
    2
    [19, 65, 23, 90]
    4
    [19, 65, 23, 90]
    0

     

    [19, 65, 23, 90]
    6

    [19, 65, 23, 90]
    7
    [19, 65, 23, 90]
    8
    [19, 65, 23, 90]
    9
    [19, 65, 23, 90]
    0_______0_______1
    [19, 65, 23, 90]
    2
    [19, 65, 23, 90]
    1
    [19, 65, 23, 90]
    4
    [19, 65, 23, 90]
    1
    [19, 65, 23, 90]
    6
    [19, 65, 23, 90]
    7

    [19, 65, 23, 90]
    8_______0_______8
    [19, 65, 23, 90]
    0
    [19, 65, 23, 90]
    1
    [19, 65, 23, 90]
    2

     

    [19, 65, 23, 90]
    3
    [19, 65, 23, 90]
    4
    [19, 65, 23, 90]
    7_______0_______6
    [19, 65, 23, 90]
    7
    [19, 65, 23, 90]
    0
    [19, 65, 23, 90]
    9
    [19, 65, 23, 90]
    7
    [19, 65, 23, 90]
    0# Python3 program to swap elements2

    đầu ra.  
     

    [19, 65, 23, 90]

    Thời gian phức tạp. O(1), để sử dụng các hoạt động liên tục
    Không gian phụ trợ. O(1), để sử dụng không gian thừa không đổi

      
    Cách tiếp cận #3. Sử dụng biến tuple
    Lưu trữ phần tử tại pos1 và pos2 dưới dạng một cặp trong một biến tuple, giả sử get. Giải nén các phần tử có vị trí pos2 và pos1 trong danh sách đó. Bây giờ, cả hai vị trí trong danh sách đó đã được hoán đổi.  
     

    Python3




    [19, 65, 23, 90]
    16

    [19, 65, 23, 90]
    17

     

    # Swap function

    def swapPositions(

    [19, 65, 23, 90]
    0
    [19, 65, 23, 90]
    1

     

    [19, 65, 23, 90]
    2
    [19, 65, 23, 90]
    24

    [19, 65, 23, 90]
    2
    [19, 65, 23, 90]
    26

    [19, 65, 23, 90]
    2
    [19, 65, 23, 90]
    28_______0_______8
    [19, 65, 23, 90]
    0_______0_______5
    [19, 65, 23, 90]
    0_______0_______7

    [19, 65, 23, 90]
    34

    [19, 65, 23, 90]
    2
    [19, 65, 23, 90]
    36

    [19, 65, 23, 90]
    2
    [19, 65, 23, 90]
    0_______0_______0_______0_______0_______0_______2
    [19, 65, 23, 90]
    8
    [19, 65, 23, 90]
    28

    [19, 65, 23, 90]
    34

    [19, 65, 23, 90]
    2
    [19, 65, 23, 90]
    4
    [19, 65, 23, 90]
    0

     

    [19, 65, 23, 90]
    48

    [19, 65, 23, 90]
    7
    [19, 65, 23, 90]
    8
    [19, 65, 23, 90]
    9
    [19, 65, 23, 90]
    0_______0_______1
    [19, 65, 23, 90]
    2
    [19, 65, 23, 90]
    1
    [19, 65, 23, 90]
    4
    [19, 65, 23, 90]
    1
    [19, 65, 23, 90]
    6
    [19, 65, 23, 90]
    7

     

    [19, 65, 23, 90]
    8_______0_______8
    [19, 65, 23, 90]
    0
    [19, 65, 23, 90]
    1
    [19, 65, 23, 90]
    2

    [19, 65, 23, 90]
    3
    [19, 65, 23, 90]
    4
    [19, 65, 23, 90]
    7_______0_______6
    [19, 65, 23, 90]
    7
    [19, 65, 23, 90]
    0
    [19, 65, 23, 90]
    9
    [19, 65, 23, 90]
    7
    [19, 65, 23, 90]
    0# Python3 program to swap elements2

    đầu ra.  
     

    [19, 65, 23, 90]

    Thời gian phức tạp. O(1), để sử dụng các hoạt động liên tục
    Không gian phụ trợ. O(1), để sử dụng không gian thừa không đổi

    Cách tiếp cận #4. Sử dụng biến tạm thời

    Python3




    # Python3 program to swap elements

    # at given positions

     

    # Swap function

    def

    [19, 65, 23, 90]
    79

    [19, 65, 23, 90]
    2
    [19, 65, 23, 90]
    81
    [19, 65, 23, 90]
    8
    [19, 65, 23, 90]
    83

    [19, 65, 23, 90]
    2
    [19, 65, 23, 90]
    83
    [19, 65, 23, 90]
    8
    [19, 65, 23, 90]
    87

    [19, 65, 23, 90]
    2
    [19, 65, 23, 90]
    87_______0_______8
    [19, 65, 23, 90]
    81

    [19, 65, 23, 90]
    2
    [19, 65, 23, 90]
    4
    [19, 65, 23, 90]
    94

    [19, 65, 23, 90]
    6

    [19, 65, 23, 90]
    7
    [19, 65, 23, 90]
    8
    [19, 65, 23, 90]
    9
    [19, 65, 23, 90]
    0_______0_______1
    [19, 65, 23, 90]
    2
    [19, 65, 23, 90]
    1
    [19, 65, 23, 90]
    4
    [19, 65, 23, 90]
    1
    [19, 65, 23, 90]
    6
    [19, 65, 23, 90]
    7

    [19, 65, 23, 90]
    07
    [19, 65, 23, 90]
    8
    [19, 65, 23, 90]
    0
    [19, 65, 23, 90]
    1
    [19, 65, 23, 90]
    2

     

    [19, 65, 23, 90]
    3
    [19, 65, 23, 90]
    4
    [19, 65, 23, 90]
    7_______0_______6
    [19, 65, 23, 90]
    7
    [19, 65, 23, 90]
    0
    [19, 65, 23, 90]
    9
    [19, 65, 23, 90]
    7
    [19, 65, 23, 90]
    0# Python3 program to swap elements2

    Đầu ra

    [19, 65, 23, 90]

    Thời gian phức tạp. O(1), để sử dụng các hoạt động liên tục
    Không gian phụ trợ. O(1), để sử dụng không gian thừa không đổi

    Cách tiếp cận #5. sử dụng liệt kê

    Một cách khác để hoán đổi các phần tử trong danh sách là sử dụng hàm liệt kê để lấy chỉ số và giá trị của từng phần tử trong danh sách, sau đó sử dụng vòng lặp để tìm các phần tử cần hoán đổi và hoán đổi chúng

    Ví dụ

    Python3




    def

    [19, 65, 23, 90]
    79

    [19, 65, 23, 90]
    2
    [19, 65, 23, 90]
    25
    [19, 65, 23, 90]
    26_______0_______27
    [19, 65, 23, 90]
    28
    [19, 65, 23, 90]
    29

    [19, 65, 23, 90]
    30_______0_______31
    [19, 65, 23, 90]
    32
    [19, 65, 23, 90]
    8
    [19, 65, 23, 90]
    8
    [19, 65, 23, 90]
    35

    [19, 65, 23, 90]
    36_______0_______37
    [19, 65, 23, 90]
    8
    [19, 65, 23, 90]
    39

    [19, 65, 23, 90]
    30_______0_______31
    [19, 65, 23, 90]
    32
    [19, 65, 23, 90]
    8
    [19, 65, 23, 90]
    8
    [19, 65, 23, 90]
    45

    [19, 65, 23, 90]
    36_______0_______47
    [19, 65, 23, 90]
    8
    [19, 65, 23, 90]
    39

    [19, 65, 23, 90]
    2
    [19, 65, 23, 90]
    83
    [19, 65, 23, 90]
    8
    [19, 65, 23, 90]
    47

    [19, 65, 23, 90]
    2
    [19, 65, 23, 90]
    87_______0_______8
    [19, 65, 23, 90]
    37

    [19, 65, 23, 90]
    2
    [19, 65, 23, 90]
    4
    [19, 65, 23, 90]
    94

     

    [19, 65, 23, 90]
    7
    [19, 65, 23, 90]
    8
    [19, 65, 23, 90]
    9
    [19, 65, 23, 90]
    0_______0_______1
    [19, 65, 23, 90]
    2
    [19, 65, 23, 90]
    1
    [19, 65, 23, 90]
    4
    [19, 65, 23, 90]
    1
    [19, 65, 23, 90]
    6
    [19, 65, 23, 90]
    7

    [19, 65, 23, 90]
    07
    [19, 65, 23, 90]
    8
    [19, 65, 23, 90]
    0
    [19, 65, 23, 90]
    1
    [19, 65, 23, 90]
    2

    [19, 65, 23, 90]
    3
    [19, 65, 23, 90]
    4
    [19, 65, 23, 90]
    7_______0_______6
    [19, 65, 23, 90]
    7
    [19, 65, 23, 90]
    0
    [19, 65, 23, 90]
    9
    [19, 65, 23, 90]
    7
    [19, 65, 23, 90]
    0# Python3 program to swap elements2

    [19, 65, 23, 90]
    87

    Đầu ra

    [19, 65, 23, 90]

    Cách tiếp cận này có độ phức tạp về thời gian là O(n), vì nó liên quan đến việc lặp qua toàn bộ danh sách để tìm các phần tử được hoán đổi. Độ phức tạp của không gian là O(1), vì nó chỉ sử dụng một lượng không gian bổ sung không đổi để lưu trữ các phần tử được hoán đổi

    Lưu ý rằng phương pháp này có thể được thực hiện hiệu quả hơn bằng cách sử dụng một vòng lặp duy nhất và thoát ra khỏi vòng lặp khi các phần tử đã được tìm thấy và hoán đổi