您的位置:首页 > 理论基础 > 数据结构算法

排序算法(2)-快速排序

2016-06-03 16:09 239 查看
// 快速排序算法
void quickSort(int *b,int left,int right) {
if (left<0 || left>right) {
return;
}
int i = left;     // 标记开始位置
int j = right;    // 标记末尾位置
int key = b[i];   // 选择分治的数据

while (i < j) {
while (i < j && key <= b[j]) {    // 首先从后往前寻找比制定数据值小的数据
j--;
}
b[i] = b[j];

while (i < j && key >= b[i]) {    // 首先从前往后寻找比制定数据值大的数据
i++;
}
b[j] = b[i];
}
b[i] = key;
quickSort(b, left, i-1);
quickSort(b, i+1, right);

return;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息