题解 | 牛牛的排序
牛牛的排序
https://www.nowcoder.com/practice/26a0c92e9266443887a3bf81aff8e188
#include <stdio.h>
#include <stdlib.h>
// write your code here......
int cmp_int( void* e1, void* e2) {
return *(int*)e1 - *(int*)e2; //计算类型
}
int main() {
int n, i, j, temp;
scanf("%d",&n);
int* arr=(int*)malloc(n*sizeof(int));
for (i = 0; i < n; i++) {
scanf("%d",&arr[i]);
}
#if 0 // select sort
for(i = 0; i < n; i++) {
for(j = i + 1; j < n; j++) {
if(arr[i] > arr[j]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
#elif 0 // bubble sort
for(i = 0; i < n; i++) {
for(j = 0; j < n - i -1; j++) {
if(arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
#else // quick sort
qsort(arr, n, sizeof(int), cmp_int);
#endif
for (i = 0; i < n; i++) {
printf("%d ",arr[i]);
}
// write your code here......
free(arr);
return 0;
}
