选择排序
/************************************************************
* file name: SelectSort.c
* author : 19870326073@163.com
* date : 2024/05/06
* function : 选择排序
* note :
*
* CopyRight (c) 2023-2024 19870326073@163.com All Right Reseverd
*
* ***********************************************************/
#include <stdio.h>
/***********************************************************
*
* 函数名称: SelectSort
* 函数功能: SelectSort
* 函数参数:
* @a :
* @b :
* 返回结果:
* 注意事项:
* 函数作者: 19870326073@163.com
* 创建日期: 2024/05/06
* 修改历史:
* 函数版本: V1.0
* ***********************************************************/
//选择排序﹑从序列中找到一个最小值元素,把最小值元素放在整个序列的首部,重复n轮,直到整个序列有序
void SelectSort(int buf[],int bufsize)
{
int min = 0; //记录最小值元素的下标
int temp = 0;//备份最小值元素的值
//需要比较n轮,每轮找到序列中的最小值元素
for (int n = 0; n < bufsize-1; ++n)
{
min = n;//假设每轮序列中的第一个元素是最小值元素
//找到序列中的最小值元素的下标
for (int i = n+1; i < bufsize; ++i)
{
//每轮需要通过比较的方式才可以确定最小值
if (buf[min] > buf[i] )
{
min = i;//更新当前的最小值元素的下标}
}
}
//找到最小值元素,需要把最小值元素和序列的首部元素进行交换
temp= buf[min];
buf[min] = buf[n];
buf[n] = temp;
}
}
int main(int argc,char * const argv[])
{
int n;
int A[10] = {5,6,4,7,8,9,3,1,2,12};
SelectSort(A,10);
for(n = 0; n < 10; n++)
{
printf("%d", A[n]);
}
}