1、选择排序
选择排序是指每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。若想更直观的了解选择排序,可点击可视化选择排序了解。
2、选择排序demo
#include <iostream>
#include <stdio.h>
using namespace std;
const int n = 10;
template <class T>
void selectSort(T *data, const int n);
int main(int argc, const char *argv[])
{
int data[n] = {1, 3, 2, 0, 45, 43, 90, 10, 21, 33};
printf("Select sort before:\n");
for (int i = 0; i < n; i++){
cout << data[i] << " ";
}
selectSort(data, n);
printf("Select sort after :\n");
for (int i = 0; i < n; i++){
cout << data[i] << " ";
}
return 0;
}
template <class T>
void selectSort(T *data, const int n)
{
int min, i, j;
T temp;
for (i = 0; i < n-1; i++){
min = i;
for (j = i+1; j < n; j++){
if (data[min] > data[j]){
min = j;
}
}
temp = data[i];
data[i] = data[min];
data[min] = temp;
}
printf("\n");
}