选择排序的原理:每一轮从待排序的元素中选出最小元素,放在已排好序的序列后面,直到全部元素排序完毕。
#include <iostream>
#include <stdlib.h>
using namespace std;
/*******************************************/
/* 选择排序
/******************************************/
void swap(int array[], int i, int min) //位置互换函数
{
int temp = array[i];
array[i] = array[min];
array[min] = temp;
}
void SelectionSort(int array[], int n) //选择排序函数
{
for (int i = 0; i < n - 1; i++)
{
int min = i; //假设min是数组最小的元素
for (int j = i + 1; j < n; j++)
{
if (array[j] < array[min])
{
min = j; //保存当前找到的最小元素
}
}
swap(array[i], array[min]); //调用swap函数进行位置互换
}
}
int main(void) //主程序
{
const int n = 6; //数组元素的数量
cout << "请输入6个整数: " << endl;
int array[n];
for (int i = 0; i < n; i++)
{
cin >> array[i];
}
SelectionSort(array, n); //调用SelectionSort函数,进行比较
cout << endl; //换行
cout << "由小到大的顺序排列后: " << endl;
for (int i = 0; i < 6; i++)
{
cout << "Array" << "[" << i << "]" << " = " << array[i] << endl;
}
cout << endl << endl; //换行
system("pause"); //调试时,黑窗口不会闪退,一直保持
return 0;
}
运行结果: