【实例描述】
本实例实现选择排序算法,核心思想是首先选取当前最小值的位置及值,与其后各个元素相比,如果还有最小元素,则交换位置,直到到达数组最末尾,
【实现过程】
定义数组a[M],定义函数SelectSort()用于选择排序算法,代码如下:
#include "stdafx.h"
#include <iostream>
using namespace std;
#define M 11
void SelectSort(int a[])//定义选择排序函数
{
cout << "排序过程:" << endl;
int pos;//目前最小的数字的位置
int temp;//temp存最小数字
for (int i = 0; i < M; i++)
{
pos = i; //最小值位置
temp = a[i];//最小值
for (int j = i + 1; j < M; j++) //查找最小的字符
{
if (a[j] < temp)//新的最小值出现
{
pos = j;//新的最小字符的位置
temp = a[j];
}
}
a[pos] = a[i];//交换元素
a[i] = temp;//最小值置于最低位
for (int k = 0; k < M; k++)
cout << a[k] << " ";
cout << endl;
}
}
void main()
{
cout << "--------------选择排序--------------" << endl;
int a[M] = { 1110,209,386,768,185,247,606,230,834,54,12 };
cout << "排序之前的元素:\n";
for (int i = 0; i < M; i++) //循环排序前数组
cout << a[i] << " ";
cout << endl;
SelectSort(a);//选择排序法
cout << "排序结果:\n";
for (int i = 0; i < M; i++)
cout << a[i] << " ";//循环排序后数组
cout << endl;
getchar();
}