ChinaUnix.net
相关文章推荐:

快速排序

Java快速排序 Java代码[code]1.public class SortTest { 2. public static int[] a = {3,6,87,22,93,112,2,54,39,44}; 3. 4. public static void qsort(int[] a,int i,int j) { 5. if(i

by 听老歌 - Java - 2012-03-16 15:48:10 阅读(1691) 回复(1)

相关讨论

快速排序 思想 快速排序算法 例 确定1个数值 大的在后面 小的那前面 在以数值为中心分割 前后2个数组分别做快速排序~如此递归! 下面是1个demo 设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用第一个数据)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。值得注意的是,快速排序不是一种稳定的排序算法,也就是说,多个相同的值的相对...

by feiyang10086 - Java - 2012-03-02 16:02:09 阅读(1095) 回复(2)

算法导论上7.4.1小节说 PARTITION 产生两个子问题,总的大小为n-1. 为什么是n-1呢? 不是每次PARTITION都可以确定一个元素在数组中的位置吗,那么传给PARTITION的数组的元素个数应该越来越少呀,怎么会总是n-1呢? 谁能帮帮我吗?谢谢!

by stone421 - C/C++ - 2010-10-15 11:35:00 阅读(1765) 回复(2)

public class QuickSort1 { void QuickSort(String[] pData, int left, int right) { int i, j; // int iTemp; String middle, strTemp; i = left; j = right; middle = pData[(left + right) / 2]; do { while ((pData.compareTo(middle) 0) && (j > left)){ j--; } if (i // iTemp = pDataNum; // pDataNum = pDataNum[j]; // pDataNum[j] = iTemp; i++; j--; } } while...

by kumwolf - Java文档中心 - 2008-11-09 12:05:17 阅读(1040) 回复(0)

详细出处参考:http://www.jb51.net/article/21008.htm[code] def quick_sort(ls): return [] if ls == [] else quick_sort([y for y in ls[1:] if y < ls[0]]) + [ls[0]] + quick_sort([y for y in ls[1:] if y >= ls[0]]) if __name__ == '__main__': l1 = [3,56,8,1,34,56,89,234,56,231,45,90,33,66,88,11,22] l2 = quick_sort(l1) print l1 print l2 [/code]注意:quick_sort函数中的代码是在一行里面的

by cucugbgb - Python - 2010-10-29 10:30:07 阅读(2091) 回复(2)

def qsort(list)   return [] if list.size ==0   x,*xs = list   small,big = xs.partition { |item| item

by teebye - Python - 2009-03-25 09:54:22 阅读(3560) 回复(11)

假设知道最大值和最小值范围。 首先取center = (max + min) / 2 然后 > center的放入一边, < center 的放入一边。 统计两边的个数,然后修改max和min,重新做。 像你说的,如果固定的100万,可以把center 设置为靠近100万的值。

by broadoceans - C/C++ - 2006-12-18 13:18:25 阅读(929) 回复(0)

这是算法引论中介绍的快速排序算法: [code]QUICKSORT(A,p,r) 1 if p < r 2 then q <-- PARTITION(A,p,r) 3 QUICKSORT(A,p,q) 4 QUICKSORT(A,q + 1,r) PARTITION(A,p,r) 1 x <--- A[p] 2 i <--- p - 1 3 j <--- r + 1 4 while TRUE 5 do repeat j <--- j - 1 6 until A[j] <= x 7 repeat i <--- i + 1 8 until A >= x 9 if i < j 10 ...

by blueprint - C/C++ - 2005-12-19 23:46:59 阅读(966) 回复(0)

[code] #include "istream.h" #include "ostream.h" void qsort(int[],int,int); void main() { int a[]={6,2,4,5,1,3}; int len=sizeof(a)/sizeof(int); qsort(a,0,len-1); for(int i=0;i;pivot) --r; if(l>;=r) break; ...

by qdqiqi - C/C++ - 2003-07-22 16:35:12 阅读(4828) 回复(13)

#include #include int partition(int l[], int low, int high) { int pivotkey = l[low]; while(low < high) { while((low < high) && (l[high] >= pivotkey)) high--; l[low] = l[high]; while((low < high) && (l[low] <= pivotkey)) low++; l[high] = l[low]; } ...

by forboa - C/C++ - 2008-04-23 19:08:16 阅读(1376) 回复(1)

对于快速排序的理解 这两天一直在看排序的算法,当看到快速排序的时候卡了,真是那个郁闷啊。之前几个排序(选择、冒泡......)很快就可以过了。 可是看到快速排序的时候就怎么的也不能理解。 然后就到网上去搜了下,搜到的也就这么几种解释,多数都是大同小异。 网上搜到的,解析得也有点官方,看了会觉得还是看不懂。 怎么的......只能自己慢慢理解吧! 最后......也算是有点小成就吧,自己能理解,不知道对还是不对。 ...

java

by 听老歌 - Java - 2011-11-11 11:18:16 阅读(1916) 回复(1)