Skip to main content

Hoán đổi tiêu chuẩn là gì?

Trong lập trình máy tính và khoa học máy tính, hoán đổi tiêu chuẩn là một tình huống trong một chương trình trong đó hai biến cần phải trao đổi giá trị của chúng, yêu cầu tạo biến thứ ba để hoạt động như một trung gian khi các giá trị được chuyển.Hoán đổi tiêu chuẩn là một mô hình lập trình, có nghĩa là nó có thể được áp dụng cho bất kỳ tình huống nào trong đó hai phần dữ liệu cần được trao đổi và không được gắn với bất kỳ một loại dữ liệu hoặc ngôn ngữ lập trình nào.Có nhiều trường hợp trong các chương trình trong đó các giá trị cần được hoán đổi, nhưng nó thường là một thành phần tiêu chuẩn trong các bộ sưu tập và mảng khi được sử dụng với các thuật toán sắp xếp phải di chuyển các mục từ chỉ mục này trong bộ sưu tập khác, sử dụng biến tạm thời để giữGiá trị được hoán đổi.Từ góc độ phần cứng, hoán đổi tiêu chuẩn có thể là hàm xử lý cấp thấp được hỗ trợ cho một số loại dữ liệu vô hướng như số nguyên, có nghĩa là giá trị trung gian không cần phải được tạo trong bộ nhớ truy cập ngẫu nhiên (RAM) để trao đổi hai số.Khái niệm hoán đổi tiêu chuẩn có thể được nhìn thấy với các biến A và B;Khi kết thúc hoán đổi tiêu chuẩn, B nên bằng A và A phải bằng B. Nếu một chương trình chỉ đơn giản là gán B cho A, thì giá trị của A sẽ bị mất và sau đó không thể được gán cho B. Điều này yêu cầu sử dụng aBiến tạm thời sẽ giữ giá trị của một thời gian B được gán cho A. Bước cuối cùng là gán giá trị biến tạm thời cho B, hoàn thành hoán đổi. Một ứng dụng rất phổ biến cho hoán đổi tiêu chuẩn là khi sử dụng thuật toán sắp xếp trênmột mảng hoặc bộ sưu tập.Nếu một thuật toán sắp xếp đã xác định rằng dữ liệu tại Mảng 1 phải được hoán đổi với dữ liệu tại INDEX 10, thì có thể thực hiện hoán đổi tiêu chuẩn của dữ liệu.Điều này có thể được thực hiện đặc biệt nhanh bằng cách sử dụng các tham chiếu con trỏ bằng các ngôn ngữ như C.

Một biến chứng có thể xảy ra trong một số ngôn ngữ lập trình theo định hướng đối tượng khi hai trường hợp đối tượng cần được hoán đổi.Trong một số trường hợp rất hiếm, chỉ cần trao đổi các tài liệu tham khảo đối tượng sẽ không bắt đầu hoán đổi thực tế.Thay vào đó, cách duy nhất để trao đổi các đối tượng là sao chép dữ liệu bên trong, trường theo trường, giữa hai đối tượng và biến đối tượng tạm thời. Có một kỹ thuật có thể được sử dụng để thực hiện hoán đổi tiêu chuẩn bằng cách sử dụnghoặc (XOR) toán tử logic.Trao đổi XOR dựa vào thực tế là, khi hai bit được tính bằng XOR, về cơ bản chúng sẽ tạo ra một mặt nạ có thể được đảo ngược với một hoặc cả hai toán tử.Theo cách này, hai biến, A và B, có thể được hoán đổi bằng cách đầu tiên tạo mặt nạ với XOR của hai biến, sau đó sử dụng XOR để vạch trần giá trị cho B và sau đó là giá trị của A. Thật không may, mặc dù phương pháp này tránh đượcViệc tạo ra một biến tạm thời, nó cũng sẽ không thực hiện hoán đổi trong tất cả các trường hợp, cụ thể là khi A và B bằng nhau và trong các trường hợp tối ưu hóa trình biên dịch có thể thay đổi hoạt động thực tế.