Ketika lulus pertama melalui array selesai , pertukaran semacam kemudian mengambil elemen kedua dan membandingkannya dengan setiap elemen berikut array swapping elemen yang rusak . Proses pemilahan ini berlanjut sampai seluruh array diperintahkan .
Mari kita memeriksa meja yang sama kami elemen lagi menggunakan semacam pertukaran untuk urutan . Ingat , sebuah " lulus " didefinisikan sebagai satu perjalanan penuh melalui array membandingkan dan jika perlu , swapping elemen .
Array at
beginning:
|
84
|
69
|
76
|
86
|
94
|
91
|
After Pass
#1:
|
94
|
69
|
76
|
84
|
86
|
91
|
After Pass
#2:
|
94
|
91
|
69
|
76
|
84
|
86
|
After Pass
#3:
|
94
|
91
|
86
|
69
|
76
|
84
|
After Pass
#4:
|
94
|
91
|
86
|
84
|
69
|
76
|
After Pass
#5 (done):
|
94
|
91
|
86
|
84
|
76
|
69
|
Pertukaran semacam , dalam beberapa situasi , sedikit lebih efisien daripada jenis bubble . Hal ini tidak perlu untuk jenis pertukaran untuk membuat lulus lengkap akhir yang dibutuhkan oleh semacam bubble untuk menentukan bahwa itu selesai .
// Efek Urutkan Fungsi untuk Descending order
kekosongan ExchangeSort ( apvector < int > & num )Itulah sedikit informasi, semoga bermanfaatint temp; // holding variable int numLength = num.length( ); for (i=0; i< (numLength -1); i++) // element to be compared { for(j = (i+1); j < numLength; j++) // rest of the elements { if (num[i] < num[j]) // descending order { temp= num[i]; // swap num[i] = num[j]; num[j] = temp; } } } return; }
Source = http://mathbits.com/MathBits/CompSci/Arrays/Exchange.htm