207
社区成员
发帖
与我相关
我的任务
分享
选择排序算法是通过遍历数组,选择出数组中的最小或者最大值,与指定位置完成交换数据,遍历完整个数组的所有位置就完成排序。
实现本题代码如下
#include<stdio.h>
void SelectSort(int n,int arr[])
{
for(int i=0;i<n-1;i++)
{
for(int j=i+1;j<n;j++)
{
if(arr[i]<arr[j])
{
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
}
int main()
{
int n;
scanf("%d",&n);
int arr[n];
for(int i=0;i<n;i++)
{
scanf("%d",&arr[i]);
}
sort(n,arr);
for(int i=0;i<n;i++)
{
if(i==n-1)
printf("%d",arr[i]);
else
printf("%d ",arr[i]);
}
return 0;
}
选择排序法的效率
时间复杂度O(n^2)
空间复杂度:O(1)
选择排序法是最简单的排序法之一,优点就是好理解,但选择排序法无论数组是否有序,选择排序法的执行次数不变,效率相对较低。
可以演示出排序算法的过程,帮助理解
写的真好,非常有帮助