ChinaUnix.net
相关文章推荐:

快速排序算法演示

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

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

相关讨论

[code] def QuickSort(ls): return [] if ls ==[] else QuickSort([x for x in ls[1:] if x=ls[0]]) if __name__=="__main__": ls=[10,9,8,7,6,5] print(QuickSort(ls)) [/code] 第一次看的时候,觉得python很强大。 仔细一看,这个不算是原地排序了吧。 [ 本帖最后由 bluecase 于 2010-1-11 14:08 编辑 ]

by bluecase - Python - 2010-01-10 22:15:24 阅读(1518) 回复(0)

[root@mip-123456 quick_sort]# cat quick.c #include stdio.h> #define N 10 inline int exchange(int* a,int* b) { int tmp; tmp = *a; *a = *b; *b = tmp; return 0; } int partition(int* A,int p ,int r) { int tmp = 0; int i = 0; int j = 0; tmp = *(A+r); //printf("tmp is %d\n",tmp); i = p-1; for(j=p;jr;j++) { // printf("A[%d] is %d\n",j,*(A+j)); if(A[j]tmp) ...

by ubuntuer - Linux文档专区 - 2009-05-18 14:00:12 阅读(604) 回复(0)

快速排序的改进算法,或者大家谈谈如何改进快速排序:)

by W.Z.T - C/C++ - 2007-07-04 19:43:57 阅读(6925) 回复(32)

书上说快速排序是对起泡排序的一种改进,个人感觉他俩没啥关系呢?求高人指点! 冒泡排序的思想较简单: S1:从待排序序列的起始位置开始,从前往后依次比较各个位置和其后一位置的值得大小并执行S2。 S2:如果当前位置的值大于其后需位置的值,就把他俩的值交换。 //完成此次全序列比较后,序列最后位置的值即此序列最大值,所以其不需要在参与冒泡。 S4:将序列的最后一个位置从待冒泡的序列中移除。如果移除后待排序序列不为空则执...

by seiya - MySQL - 2011-12-20 15:51:40 阅读(928) 回复(0)

递归函数quicksort里面没有判断左右范围大小,导致无穷递归,纠结了半天。闲来没事,写简单的数据结构,学学编程。[code]#include int quichsort(int *arr, int left, int right); void swap(int *a, int *b); int main() { int arr[] = {9, 2, 1, 4, 3, 15, 11, 6, 7}; int arr_len = sizeof(arr) / sizeof(arr[0]); int i; for (i = 0; i < arr_len; i++) { printf("%d ", arr); } printf("\n"); ...

by jack1007 - C/C++ - 2012-10-23 17:46:03 阅读(5238) 回复(2)

re 只是把快速排序的递归算法改成非递归的了。是吧? [ 本帖最后由 dzbjet 于 2006-8-12 20:03 编辑 ]

by dzbjet - C/C++ - 2006-08-14 09:46:41 阅读(5726) 回复(3)

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)