数据结构:选择排序
原创
©著作权归作者所有:来自51CTO博客作者顾道长生的原创作品,请联系作者获取转载授权,否则将追究法律责任
基本思想:
每一趟 (例如第 i 趟,i= 0, 1, …, , , n-2)
在后面 n-i个待排的数据元素中选出关键字
最小的元素, 作为有序元素序列的第 i个元
素
SelectionSort.c
#include <stdio.h>
void println(int *array,int len)
{
int i=0;
for(i=0;i<len;i++)
{
printf("%d ",array[i]);
}
printf("\n");
}
void swap(int *array,int i,int j)
{
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
void SelectionSort(int *array,int len)
{
int i = 0;
int j = 0;
int k = -1;
for(i=0;i<len;i++)
{
k = i;
for(j=i;j<len;j++)
{
if(array[j]<array[k])
{
k = j;
}
}
swap(array,i,k);
}
}
int main()
{
int array[] = {21,25,49,25,16,8};
int len = sizeof(array)/sizeof(*array);
println(array,len);
SelectionSort(array,len);
println(array,len);
return 0;
}
运行效果: