发布网友 发布时间:2022-04-23 04:58
共1个回答
热心网友 时间:2022-04-28 22:54
#include <stdio.h>
//选择排序算法,升序
void sort(int *arr,int n)
{
int i,j,k;
int tmp;
for(i=0;i<n-1;i++)
{
k=i; //开始一趟选择排序,假定第i个元素是后面n-i+1个未排序的元素中最小的元素
for(j=i+1;j<n;j++)
{
if(arr[k] > arr[j]) //如果发现比当前最小元素还小的元素,则更新记录最小元素的下标k
k=j;
}
//如果最小元素的下标不是后面n-i+1的未排序序列的第一个元素,则需要交换第i个元素和后面找到的最小元素的位置
if(k != i)
{
tmp=arr[k];
arr[k]=arr[i];
arr[i]=tmp;
}
}
}
int main()
{
int a[10]={ -5,-9,-8,3,9,2,-28,101,-395,0};
int i;
sort(a,10);
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
//运行结果
F:\c_work>a.exe
-395 -28 -9 -8 -5 0 2 3 9 101