快速排序的一种写法

原创 2013年12月04日 10:05:34
void swap(int* pa,int a,int b){int temp=pa[a];pa[a]=pa[b];pa[b]=temp;}bool LT(int a,int b, bool flag){if(!flag) return (a<=b); //如果按照的是从小到大的顺序return (a>=b);}int partition(int* pa,int low,int high){if(low>=high) return high;int i=low+1;int j=high;int ref=pa[low]; while(i<=j){ while(LT(pa[i],ref,0)&&(i<=j)){i++;};//i会首先指向比pivot大的那个元素while(LT(ref,pa[j],0)&&(i<=j)){j--;};//if(i=high) return;//递归的出口int pivot=partition(pa,low,high);quickSort(pa,low,pivot-1);quickSort(pa,pivot+1,high);}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

快速排序的一种写法

一、快速排序的基本特性 时间复杂度:O(n*lgn) 最坏:O(n^2) 空间复杂度:O(n*lgn)不稳定。 快速排序时基于分治模式处理的,对一个典型子数组A[p...r]排序的分治过程为三...

快速排序的简洁写法

个人总结的两种快排写法

快速排序的三种写法的效率比较

最近在复习排序和查找算法的时候,回想算法课程和数据结构课程上面各种写法,总结一下,顺便比较了一下它们之间的效率,   另《外数据结构》书本上阐述,如果比较的枢纽值不是第一个或者最后一个而是 a[l...

快速排序partition的写法

1.本科时候,严老师的那本书上给的写法 int partition(int A[],int left,int right){ if(left >= right) r...

快速排序用js、java和C的写法

快速排序是找出一个元素(理论上可以随便找一个)作为基准(pivot),然后对数组进行分区操作,使基准左边元素的值都不大于基准值,基准右边的元素值 都不小于基准值,如此作为基准的元素调整到排序后的正确位...

[算法] 两种快速排序的while写法

两种快速排序的while写法

快速排序 图解算法过程 另一种方法 大同小异

原创博文,转载请注明出处。 右键,查看图片,看大图。 快速排序基本步骤 步骤一:划分   (1)选择数组的尾元素做为支点,支点选择方案有很多。   (2)把>=支点的元素放到右边。   (3)把 ...

数据结构和算法学习系列之快速排序的Partition函数一种实现方法

这种方式不同于以往的两个游标从左右两侧交替比较的方法。而是只是从一侧走向另一侧。不失为一种思路 1. 在书中看到快速排序的Partition一种实现方法。最开始颇为不理解。后来画图试数,不得不承认...

快速排序比较好的一种理解方式

快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个...
  • mikuj
  • mikuj
  • 2013-12-09 20:34
  • 398
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)