选择排序算法

来源:互联网 发布:激战2选阿苏拉捏脸数据 编辑:程序博客网 时间:2024/05/16 01:04
#include<iostream>using namespace std;//选择排序法的第一层循环从下标1开始遍历到下标n-1,//主要是在每次进入的第二层循环之前,将外层循环的下标赋值给临时变量,//接下来的第二层循环中,如果发现有比这个最小位置处的元素更小的元素,则将那个更小的元素的下标赋给临时变量,//最后,在二层循环退出后,如果临时变量改变,则说明有比当前外层循环位置更小的元素,需要将这两个元素交换.//eg 5 1 6 3 8->1 5 6 3 8-> 1 3 6 5 8->1 3 5 6 8—>1 3 5 6 8 外层循环4次//选择排序,将数组中元素从小到大排列,每次循环只要交换一次void selectSort(int list[], int n){for (int i = 1; i <= n - 1; i++)//外层循环,下标1开始遍历到下标n-1{int min = i - 1;//i-1为min的初始值for (int j = i; j <= n - 1; j++)//下标i开始遍历到下标n-1{if (list[j] < list[min])min = j;//for语句执行完,a[min]存放的是最小的元素}swap(list[i-1], list[min]);}}int main(){int a[] = { 1, 2, 4, 3, 7, 6 };selectSort(a, 6);for (int k = 0; k < 6; k++)cout << a[k] << " ";cout << endl;system("pause");return 0;}

0 0