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

#include<stdio.h>

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

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;
	
}

  

原文地址:https://www.cnblogs.com/eternal1025/p/4427963.html