选择排序:选择一个最大或者最小的元素放到起始位置,直到排完为止。(不稳定)
如有一组数据:3,6,2,1,9
->1,6,2,3,9
->1,2,6,3,9
->1,2,3,6,9
1 #include <iostream> 2 3 using namespace std; 4 5 int main() 6 { 7 int a [] = {3,2,1,6,9}; 8 int min; 9 for(int i = 0;i < sizeof(a)/4-1;i++) 10 { 11 min = i; 12 for(int j = i+1; j <sizeof(a)/4;j++) 13 { 14 if(a[i] > a[j]) 15 min = j; 16 } 17 if(min != i) 18 { 19 int temp = a[min]; 20 a[min] = a[i]; 21 a[i] = temp; 22 } 23 } 24 for(int i = 0; i<sizeof(a)/4;i++) 25 printf("%d ",a[i]); 26 }
简单排序的时间复杂度为O(N2);空间复杂度为O(1)选择排序是一种不稳定的排序.