基本思想:在要排序的一组数中,假设第一个元素时最小值,依次与后面的元素比较,如果有更小的值,交换。继续遍历元素,依次找到最小的值,进行交换,最后完成排序。

C#算法实现:

public static void SelectionSort(int[] arr) 
{ 
	int n = arr.Length; 
	for (int i = 0; i < n - 1; i++) 
	{
		    int minIndex = i;
			for (int j = i + 1; j < n; j++) 
			{ 
				if (arr[j] < arr[minIndex]) 
				{
					 minIndex = j; 
				} 
			}  
			if (minIndex != i) 
			{  
				int temp = arr[i];
				arr[i] = arr[minIndex];
				arr[minIndex] = temp; 
			} 
	} 
 }