选择排序是一种简单的排序方法,其时间复杂度为O(n^2),下面对其做简单介绍。
以数组arr[] = {8,3,4,6,9,7,2,1}为例,对其进行选择排序的过程如下:
代码:
#include<stdio.h>
void SelectSort(int *arr,int sz)
{
int mark,i,j;
for(i=0; i<sz-1; i++)
{
mark = i;
for(j=i+1; j<sz; j++)
{
if(arr[j] < arr[mark])
mark = j;
}
if(mark != i)
{
int tmp = arr[mark];
arr[mark] = arr[i];
arr[i] = tmp;
}
}
}
int main()
{
int i;
int arr[] = {8,3,4,6,9,7,2,1};
int sz = sizeof(arr)/sizeof(arr[0]);
SelectSort(arr,sz);
for(i=0; i<sz; i++)
printf("%d ",arr[i]);
return 0;
}
空间:原址排序
稳定性:不稳定
本文介绍了选择排序的基本概念,它是一种简单的排序算法,拥有原址排序的特点,但不具备稳定性。以示例数组arr[] = {8,3,4,6,9,7,2,1}说明了选择排序的过程。"
119804675,7734270,LeetCode 1143:动态规划解最长公共子序列,"['动态规划', '算法题解', '字符串处理']
1313

被折叠的 条评论
为什么被折叠?



