选择排序

引论

选择排序也是一种非常简单的排序算法,它的思想是:依次找出无序数组中的最小值,然后把它放到已排序的数据的后面。

算法的时间复杂度为O(N^2)。另外选择排序是不稳定的。排序算法的不稳定是指,当待排序的数组中有相等元素时,当运行排序算法后,这组相等元素的位置发生改变,则称算法为不稳定的。当然稳不稳定对最终结果没多大意义

例子

未排序序列:【39,28,51,62,78,9,25,36】

第一次排序:【9,28,51,62,78,39,25,36】

第二次排序:【9,25,51,62,78,39,28,36】

第三次排序:【9,25,28,62,78,39,51,36】

第四次排序:【9,25,28,36,78,39,51,62】

第五次排序:【9,25,28,36,39,78,51,62】

第六次排序:【9,25,28,36,39,51,78,62】

第七次排序:【9,25,28,36,39,51,62,78】

代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void SelectSort(ElementType A[], int N)  
{
int i,j,min,tmp;
for(i=0;i<N;i++)
{
min = i;
for(j=i+1;j<N,j++)
if(A[min]>A[j])
min=j;
if(min!=i)
{
tmp = A[i];
A[i] = A[min];
A[min] = tmp;
}
}
}
显示 Gitment 评论