#include <iostream>
using namespace std;
//选择排序--二元选择排序
void selectSort(int array[], int len) {
int i, j, min, max, temp;
for (i = 0; i < len / 2; ++i) {
min = i; max = i;
for (j = i + 1; j <= len - i - 1; ++j) {
if (array[j] > array[max]) {
max = j;
continue;
}
if (array[j] < array[min]) {
min = j;
}
}
temp = array[i];
array[i] = array[min];
array[min] = temp;
if (max == i) {
temp = array[len - i - 1];
array[len - i - 1] = array[min];
array[min] = temp;
}
else {
temp = array[len - i - 1];
array[len - i - 1] = array[max];
array[max] = temp;
}
}
}
void printOr(int array[], int len) {
for (int a = 0; a < len; ++a) {
cout << array[a] << ",";
}
cout << endl;
}
void printFin(int array[], int len) {
for (int a = 0; a < len; ++a) {
cout << array[a] << ",";
}
cout << endl;
}
int main() {
int array[] = { 2,3,4,5,1,67,34,25,45,98,43 };
//int array[] = { 12,35,69,84,52,54,75,65};
int len = sizeof(array) / sizeof(int);
cout << "The orginal array is:" << endl;
printOr(array, len);
selectSort(array, len);
cout << "The selectsorted array is:" << endl;
printFin(array, len);
cin.get();
}
运行结果: