首页 > 编程语言 > 详细

[算法天天练]选择排序法

时间:2015-04-15 13:11:04      阅读:318      评论:0      收藏:0      [点我收藏+]
#include<stdio.h>

void show(int arr[], int length)
{
	for(int i=0; i<length; i++)
	{
		printf("%d ", arr[i]);
	}	
	printf("\n");
}

void _swap(int *a, int *b)
{
	int tmp = *a;
	*a = *b;
	*b = tmp;
}

void SelectSort(int arr[], int length)
{
	size_t i,j;
	int min;
	
	for(i=0; i<length-1; i++)
	{
		//假设arr[i]为最小的数
		min = arr[i];
		
		//通过循环获取数组中剩余数中的最小数
		for(j=i+1; j<length; j++)
		{
			if(min > arr[j])
			{
				_swap(&min, &arr[j]);
			}
		}
		
		//将最小的数放到正确的位置
		if(arr[i] != min)
		{
			 _swap(&arr[i],&min);
		}
	}
}

int main()
{
	int arr[10] = {2,1,5,4,3,9,8,7,6,0};
	SelectSort(arr,10);	
	show(arr, 10);
	return 0;
	
}

  

[算法天天练]选择排序法

原文:http://www.cnblogs.com/eternal1025/p/4427963.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!