简单选择排序

每轮在无序区扫描一遍选出最小元素,与无序区第一个位置交换,使有序前缀从左向右扩展。 比较次数固定 O(n²),交换次数最多 n-1 次,是不稳定排序。

选择排序
01 / 27 步
初始数组:5 2 8 1 9。简单选择排序:每轮选出区间最小元素放到最前。 比较 0 · 交换 0
伪代码

				
					
					1
					procedure selectionSort(a, n)
				
			
				
					
					2
					  for i = 1 to n - 1 do
				
			
				
					
					3
					    k = i
				
			
				
					
					4
					    for j = i + 1 to n do
				
			
				
					
					5
					      if a[j] < a[k] then
				
			
				
					
					6
					        k = j
				
			
				
					
					7
					      end if
				
			
				
					
					8
					    end for
				
			
				
					
					9
					    if k != i then
				
			
				
					
					10
					      swap(a[i], a[k])
				
			
				
					
					11
					    end if
				
			
				
					
					12
					  end for
				
			
				
					
					13
					end procedure
				
			
01 / 27
速度