#include<stdio.h>
#include <iostream>
using namespace std;

void swap(int *a, int *b) //元素交换
{
        int temp = 0;
        temp = *a;
        *a = *b;
        *b = temp;
}

int main()
{
    int a[4] = { 23, 20, 13, 22};  //定义一个int类型数组

    //选择排序 
    for (int i = 0; i <4; i++)
    {
        int min1 = i;  //定义一个变量赋值为i,表示当前循环中最小的值的下标,表示最小值在数组中所对应的的位置下标
        for (int j = i + 1; j < 4; j++)  //定义一个for循环,j的初始值为当前循环的第二个元素
        {
            if (a[j] < a[min1])//每一次循环,拿当前循环中第二个元素与后面的元素进行对比,如果发现比后面的元素小,则记录当前较小元素所在的数组下标,并赋值给min1
            {
                min1 = j;
            }         
        }
        if (min1 != i) 
            //当循环结束发现min的值并不是最后一个值时,则将当前循环中最小的值,与当前循环中的第一个元素的值进行交换。如果
            //如果当前的min1存储的值是最后一次循环的值,并且未发生改变,则表示该数值已经是最大,则表示排序已经完成,直接跳出循环
        {
            swap(&a[min1], &a[i]);

        }
    }


    
    return 0;
}

 

版权声明:本文为shenji原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/shenji/p/12510563.html