c\c++版
void selection_sort(int *arr, int len)
{
for (int i = 0; i < len; ++i)
{
int min = i;
for (int j = i + 1; j < len; ++j)
if (arr[min] > arr[j])
min = j;
if (min != i)
{
arr[min] = arr[i] ^ arr[min];
arr[i] = arr[i] ^ arr[min];
arr[min] = arr[i] ^ arr[min];
}
}
}
java版
public static void selectionSort(int[] arr) {
for (int i = 0; i < arr.length; ++i) {
int min = i;
for (int j = i; j < arr.length; ++j) {
if (arr[min] > arr[j])
min = j;
}
if (min != i) {
arr[min] = arr[i] ^ arr[min];
arr[i] = arr[i] ^ arr[min];
arr[min] = arr[i] ^ arr[min];
}
}
}
python 版
def selection_sort(l):
if not type(l) is list:
return
if l == None:
return
length = len(l)
for i in range(length):
min = i
j = i + 1
while(j < length):
if l[min] > l[j]:
min = j
j += 1
if min != i:
l[min] = l[i] ^ l[min]
l[i] = l[i] ^ l[min]
l[min] = l[i] ^ l[min]
javascript版
function selection_sort(arr) {
if(!arr instanceof Array) return;
for (let i = 0; i < arr.length; ++i) {
let min = i;
for (let j = i + 1; j < arr.length; ++j) {
if (arr[min] > arr[j]) min = j;
}
if (min != i) {
arr[min] = arr[i] ^ arr[min];
arr[i] = arr[i] ^ arr[min];
arr[min] = arr[i] ^ arr[min];
}
}
}