快速排序的一种写法

原创 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);}

算法笔记 之 快速排序的几种写法

这是基本都一样的部分。 void print_arr(int *arr, int n) { int i; for (i = 0; i < n; i++) { if (!i) { p...
  • gaotong2055
  • gaotong2055
  • 2013年03月06日 12:58
  • 2491

排序问题之快速排序

排序算法有很多,最常见的是冒泡排序,但冒泡排序只是简单的将相邻位置的两个元素比较并交换位置,所以时间复杂度是O(N2)。快速排序的基本思想是先设一个基准数X(为了方便可以选取数组最左端的数字),比基准...
  • shiluoye_lean
  • shiluoye_lean
  • 2017年03月29日 15:23
  • 174

快速排序 递归与非递归

绪论: 由于平常用c++STL里面的sort习惯了,所以很少用过快速排序,同时也对快速排序有一种恐惧感,一直以为自己不会写,但是仔细想想快排的思想,还是很容易理解的, 只要思维达到一个高度,就都不是问...
  • wenzhunpu
  • wenzhunpu
  • 2015年12月25日 10:37
  • 396

快速排序的第二种写法

C++语言/* 快速排序 */ #include using namespace std; int data[8]; //交换函数,交换两个数 void swap(int &a,int &b){...
  • con_heart
  • con_heart
  • 2016年04月16日 10:10
  • 308

java实现各种基础排序(冒泡排序、快速排序、直接选择排序、堆排序、直接插入排序、归并排序)

前言 经过两个月的各种笔试面试,对各种基础排序算法原理了然于胸,用c闭着眼都能写出完美ac的代码来,今天刚看完java的数组,忍不住用java将各种排序实现一遍 注意,这篇文章只是为了锻炼java...
  • zinss26914
  • zinss26914
  • 2013年11月21日 15:20
  • 1804

使用java语言实现各种排序算法

排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。   内排序有可以分为以下几类: ...
  • linergou
  • linergou
  • 2016年09月29日 16:58
  • 1479

【数据结构和算法13】快速排序

上一节我们学习了一个高级排序算法:希尔排序,这一节我们将讨论另一个高级排序算法:快速排序。         快速排序算法是最流行的排序算法,因为有充足的理由,在大多数情况下,快速排序都是最快的,执行...
  • eson_15
  • eson_15
  • 2016年04月16日 21:00
  • 2558

蓝桥杯java排序之快速排序

一、快速排序算法的基本特性 时间复杂度:O(n*lgn) 最坏:O(n^2) 空间复杂度:O(n*lgn) 不稳定。 快速排序是一种排序算法,对包含n个数的输入数组,平均时间为O(nlg...
  • xiaozhuo_tang
  • xiaozhuo_tang
  • 2017年02月24日 16:46
  • 277

快速排序的基本实现(完整源代码)

以下是快速排序的完整源代码。 基本原理是: 先将待排序列一分为二,通过逐个比较,将某一元素设置为枢轴pivot,然后将比pivot小的数据换到左边,比pivot大的...
  • fengyanglian
  • fengyanglian
  • 2015年11月09日 15:26
  • 2075

快速排序partition过程常见的两种写法+快速排序非递归实现

这里不详细说明快速排序的原理,具体可参考here 快速排序主要是partition的过程,partition最常用有以下两种写法 快速排序主要是partition的过程,partition最常...
  • wusecaiyun
  • wusecaiyun
  • 2015年08月22日 20:02
  • 937
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:快速排序的一种写法
举报原因:
原因补充:

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