简单选择排序
1 #include <stdio.h> 2 #include <algorithm> 3 using namespace std; 4 5 // 简单选择排序 6 void select_sort(int sz[], int len) 7 { 8 for (int i = 0; i < len; i++) 9 { 10 // 选择出剩余为排序子数组中最小(大)值,加到已排序子数组中 11 int minx = sz[i], minpos = i; 12 for (int j = i + 1; j < len; j++) 13 { 14 if (sz[j] < minx) 15 { 16 minx = sz[j]; 17 minpos = j; 18 } 19 } 20 swap(sz[i], sz[minpos]); 21 } 22 } 23 int main() 24 { 25 // 初始数组 26 int a[] = {0, 5, 10, 8, 100, 50, -10, 60}; 27 // 进行简单选择排序 28 select_sort(a, 8); 29 // 输出排序结果 30 for (int i = 0; i < 8; i++) 31 { 32 printf("%d%c", a[i], i == 7 ? '\n' : ' '); 33 } 34 return 0; 35 }