📄 qsort2.c
字号:
#include <stdio.h>#include <stddef.h>int main(void){ int keys[] = { 5, 8, 9, 15, -18, 150, 0, 55, -5, -108, 100 }; int i; const int keys_size = (sizeof keys) / (sizeof *keys); /* prototype */ void my_qsort(int v[], int left, int right); my_qsort( keys, 0, keys_size - 1 ); for ( i = 0; i < keys_size; ++i ) { printf("%d ", keys[i]); } return 0;}/* my_qsort: sort v[left]...v[right] into increasing order */void my_qsort(int v[], int left, int right){ int i, last; /* prototype */ void my_swap(int v[], int i, int j); if (left >= right) /* do nothing if array contains */ return; /* fewer than two elements */ my_swap(v, left, (left + right)/2); /* move partition elem */ last = left; /* to v[0] */ for (i = left + 1; i <= right; i++) /* partition */ if (v[i] < v[left]) my_swap(v, ++last, i); my_swap(v, left, last); /* restore partition elem */ my_qsort(v, left, last-1); my_qsort(v, last+1, right);}/* my_swap: interchange v[i] and v[j] */void my_swap(int v[], int i, int j){ int temp; temp = v[i]; v[i] = v[j]; v[j] = temp;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -