标签:
选择排序介绍
它的基本思想是:首先在未排序的数列中找到最小(or最大)元素,然后将其存放到数列的起始位置;接着,再从剩余未排序的元素中继续寻找最小(or最大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
选择排序代码
/*
*选择排序
*参数说明
* a ---- 带排序数组
* n ---- 数组长度
*/
void select_sort(int a[], int n)
{
int i;//有序区的末尾位置
int j;//无序区的末尾位置
int min;//无序区最小值元素位置
for(i=0;i<n;i++)
{
min=i;
//找出a[i-1]....a[n-1]之间最小的元素,并赋值给min.
for(j=i+1;j<n;j++)
{
if(a[j]<a[min])
{
min=j;
}//end of if
}// end of for2
//若min!=i,则交换a[i]和a[min]
if(min!=i)
{
swap(a[i],a[min]);
}// end of if
}
}
时间复杂度为O(n2)
标签:
原文地址:http://www.cnblogs.com/smileDai/p/4872281.html