📄 快速排序.tex
字号:
快速排序
The C Programming Language
#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]);
}
printf("\nPress ENTER to quit...");
getchar();
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 + -