简单选择排序法:

简单选择排序法的特点: (1)需要指针i指向待插入位置,并且在每轮挑选中总是先假设指针i指向的就是最小元素。 (2)需要用min来记录最小元素的位置,且min总是初始化为i。 (3)需要指针j指向arr[i]的后续元素,从而通过比较来判断arr[i]是否就是最小元素,若不是则用min来记录当下的最小元素位置。 (4)当i!=min时就说明arr[i]不是最小元素,需交换两元素位置。

void SelectSort(int arr[], int length)
{
	int i;
	//一共要挑选length轮
	for (i = 0; i < length; i++)
	{
		//在每轮挑选中,总是先假设arr[i]就是最小的元素,
		//并用min来记录最小元素的下标
		int min = i;
		//每轮挑选中,j总是先指向arr[i]的下个元素
		for (int j = i + 1; j < length; j++)
		{
			//如果arr[j]>arr[i],说明arr[i]不是最小元素,记录当下的最小元素坐标
			if (arr[j] < arr[min])
			{
				min = j;
			}
		}
		//当min!=i时,说明arr[i]不是最小元素,交换两元素的位置
		if (min != i)
		{
			int temp = arr[min];
			arr[min] = arr[i];
			arr[i] = temp;
		}
	}
}