排序算法
来源:互联网 发布:兄弟连php课程价格 编辑:程序博客网 时间:2024/05/19 22:02
快速排序:
核心思想:选中序列中的一个元素pivot, 将序列分成两部分,其中左边的部分全部都小于pivot,右边的部分全部都大于pivot。然后对左右分别执行相同的操作,知道排序全部完成。
时间复杂度:o(nlogn)
代码如下:
int partition(int* n,int left, int right)
{
int i = left;
int j = right + 1;
int pivot = n[left];
while(true)
{
while(n[++i] < pivot && i < right);
while(n[--j] > pivot);
if(i >= j)
{
break;
}
if(i < j)
{
int t = n[i];
n[i] = n[j];
n[j] = t;
}
}
n[left] = n[j];
n[j] = pivot;
return j;
}
void quickSort(int* array,int left, int right)
{
if(left < right)
{
int pos = partition(array,left,right);
quickSort(array,left,pos-1);
quickSort(array,pos+1,right);
}
}
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 系统随想
- aaaaa
- printf的格式控制的完整格式
- 日本语字符字体集对应 IPA Fonts
- spring配置详解-加载资源文件(转http://hi.baidu.com/pj19830204/blog/item/e27cdc511f020a2f43a75bd5.html)
- 排序算法
- 位图拉抻方法
- clientX,pageX,offsetX,x,layerX,screenX,offsetLeft
- 本人闭关,正在研究金融工程领域,请勿打扰
- (转)android如何监听发送短信
- 自动检测文件
- oracle 10gas 下载地址
- 三层架构---转载
- asp.net 生成静态网页