C 排序算法:选择排序
C 排序算法选择排序一、实现#includestdio.h void selectSort(int *p, int size); void disArr(int *p,int size); int main() { int arr[] {1,9,8,7,0,2}; selectSort(arr, sizeof(arr) / sizeof(*arr)); disArr(arr, sizeof(arr) / sizeof(*arr)); return 0; } void selectSort(int *p, int size) { for (int i 0; i size - 1; i) { for (int j i 1; j size; j) { if (p[i] p[j]) { p[i] ^ p[j]; p[j] ^ p[i]; p[i] ^ p[j]; } } } } void disArr(int *p,int size) { for (int i 0; i size; i) { printf(%-3d, p[i]); } puts(); }二、过程演示三、优化void selectSort(int *p, int size) { int idx; for (int i 0; i size - 1; i) { idx i; for (int j i 1; j size; j) { if (p[idx] p[j]) { idx j;//比而不换 } } if (idx ! i) { p[i] ^ p[idx]; p[idx] ^ p[i]; p[i] ^ p[idx]; } } }