快速排序
来源:互联网 发布:音乐网站 知乎 编辑:程序博客网 时间:2024/06/09 19:19
using namespace std;
void swap(int arr[], int left, int right)
{
int temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
}
int partition(int arr[], int left, int right)
{
int pivot = arr[(left + right) / 2];
while (left <= right)
{
//找出左边中应被放到右边的元素
while (arr[left] < pivot) left++;
//找出右边中应被放到左边的元素
while (arr[right] > pivot) right--;
//交换元素,同时调整左右索引值
if (left <= right)
{
swap(arr, left, right);
left++;
right--;
}
}
return left;
}
void quickSort(int arr[], int left, int right)
{
int index = partition(arr, left, right);
if (left < index - 1)
{
quickSort(arr, left, index - 1);
}
if (index < right)
{
quickSort(arr, index, right);
}
}
0 0
- 快速排序
- 快速排序
- 快速排序
- 快速排序!
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 黑马程序员——ios基础---C语言:数据类型、运算符、选择结构
- Hibernate中的延迟加载机制
- Java JDBC 学习笔记 - 可更新的结果集
- myHttpRequestVolley
- 转战Androidstudio之项目eclipse迁移
- 快速排序
- 【leetcode】 Wildcard Matching
- CWinApp
- hdu 2563 -统计问题 【递推关系】
- KingbaseES数据库入门,注意事项
- cocos2d-x开发日志01——环境搭建和新建项目
- HTML的属性简介
- openvswitch中bridge的TAG使用
- 开灯问题