您的位置:首页 > 其它

基础算法之排序(2)--简单选择排序

2015-01-13 15:58 316 查看
/* purpose : data and struct algorithm study 
 * title : select  sort
 * author : ntsk13
 * data:  2015.01.13
 ****/

#include<stdio.h>

#define LEN 10 
void select_sort(int *array ,int n);

int main()
{
	int i=0;
	int data[LEN]={3,6,9,4,0,1,8,5,2,7};
	printf("Before sort:\n");
	for(i=0;i<LEN;i++){
		printf("%d\t",data[i]);
	}
	printf("\n");
	select_sort(data,LEN);
	printf("\nAfter sort:\n");

	for(i=0;i<LEN;i++){
		printf("%d\t",data[i]);
	}
	printf("\n\n");
	return 0;
}

void select_sort(int *array ,int n)
{
	int i=0,j=0,k=0,key=0,tmp=0;
	for(i=0;i<n;i++){
		<span style="color:#ff0000;">key=i;</span>
		for(j=i+1;j<n;j++){
			if(array[key] > array[j])
				key=j;
		}
		if(key != i){
			tmp=array[i];
			array[i]=array[key];
			array[key]=tmp;
			k++;
		}
	}
	printf("\n selectt sort sway %d times \n",k);
}
====================================================================================================
基本思想: 从数据中选择最大/小的与第一个交换, 从生下的数据中选择一个最大/小的数据与第二个交换.
以此类推
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: