#include "stdafx.h"
#include "iostream"
using namespace std;
/**
* 交换顺序
*
* @param x
* @param y
* @param arr
*/
void swap(int x, int y, int arr[])
{
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
/**
* 选择排序
*
* @param arr
*/
void selectionSort(int arr[], int size)
{
int min;
int length = size;
for (int i = 0; i < length; i++) {
// 初始化未排序序列中最小数据数组下标
min = i;
for (int j = i + 1; j < length; j++) {
// 在未排序元素中继续寻找最小元素,并保存其下标
if (arr[j] < arr[min])
{
min = j;
}
}
// 将未排序列中最小元素放到已排序列末尾
if (min != i)
{
swap(min, i, arr);
}
}
}
void PrintArr(int arr[],int size)
{
for (int i = 0; i < size; i++)
{
cout << arr[i] << " " ;
}
cout << endl;
}
int main()
{
int arr[] = { 2, 17, 2, 11, 7, 6, 19, 9, 14, 20, 17, 13, 14, 2, 10 };
int length = sizeof(arr) / sizeof(arr[0]);
PrintArr(arr, length);
selectionSort(arr, length);
PrintArr(arr, length);
return 1;
}