昨晚复习了一下丢了好久的《数据结构》。
复习了一下快速排序,写了几遍发现是错的,最后发现教科书的例子就是错误的…………倒!难怪中国的计算机发展不上去!!!
贴出代码吧,就当备忘录:
void QuickSort(int Data[], int Start, int End) { assert(NULL != Data); assert(Start>=0); assert(Start<=End); int i = Start; int j = End + 1; int Key = Data[Start]; int temp; do { do { i++; } while(Data[i]<Key && i<j); do { j--; } while(Data[j]>Key && i<j); if (i<j) { temp = Data[i]; Data[i] = Data[j]; Data[j] = temp; } } while(i<j); Data[Start] = Data[j]; Data[j] = Key; if (Start<j-1) { QuickSort(Data, Start, j-1); } if (End > j+1) { QuickSort(Data, j+1, End); } } |
分享到:
相关推荐
在本文中,我们将深入探讨基于FPGA的并行快速排序算法,特别关注“位宽可设”的特性。这种算法能够高效地处理大量数据,并且在硬件实现上具有很高的灵活性。我们将从以下几个方面来阐述这个主题: 一、快速排序算法...
本篇文章将详细解读“CObList 快速排序算法代码”,帮助读者深入理解其工作原理及其实现细节。 #### 二、CObList简介 `CObList` 是 MFC(Microsoft Foundation Classes)框架中的一个类,用于实现双向链表的功能。...
提供的代码示例使用 C++ 实现了快速排序算法。其中 `SqList` 类型表示存储数据的线性表。此外,代码还使用了 `freopen` 函数来重定向标准输入/输出流到文件,以便从外部文件读取数据或将结果写入文件。这种方式常...
在提供的代码片段中,`Project18_qSort` 类实现了快速排序算法。具体步骤如下: 1. **初始化**:定义一个数组 `a`,并调用 `qSort` 方法进行排序。 2. **递归调用**:在 `qSort` 方法中,首先检查 `from` 和 `to` ...
代码 多目标快速非支配排序遗传算法优化代码代码 多目标快速非支配排序遗传算法优化代码代码 多目标快速非支配排序遗传算法优化代码代码 多目标快速非支配排序遗传算法优化代码代码 多目标快速非支配排序遗传算法...
快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治法(Divide and Conquer),通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的...
(1)直接插入排序算法验证。 (2)快速排序算法验证。 (3)直接选择排序算法验证。 几种简单的排序算法代码
1.直接插入排序--增量法 2.希尔排序 3.交换排序 4.快速排序 5.直接选择排序 6.堆排序 7.归并排序
总的来说,这个FPGA并行全排序算法的RTL代码和仿真文件为学习和应用FPGA并行处理提供了宝贵的资源。理解并掌握这种设计方法,将有助于提升在数字系统设计领域的专业技能,尤其是在高速数据处理和实时计算的场景下。
- **REMOVEDU.BAS** 和 **SORT.BAS**:这两个文件可能是快速排序算法的源代码,BAS文件通常是Basic编程语言的源代码。它们可能包含了快速排序的实现,包括选择枢轴、分区和递归排序的函数。 - **DEMO.FRM** 和 **...
C语言快速排序算法例程代码,快速排序的基本思想是在待排序的序列中选择一个元素作为中间元素,将序列中小于等于中间元素的元素放到左边,大于中间元素的元素放到右边,然后递归地对左右两个子序列进行排序,直到...
Java 快速排序,目前来说效率很高的一种排序算法,好理解。
选取一个关键码key,一趟排序将要排序的数据分割成独立的两部分,key前的元素都小于key, 靠后的都大于key, 然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列...
实验代码提供了一个使用C语言实现的快速排序算法示例,其中定义了`Sqlist`结构体来表示顺序表,以及`Partition`和`QSort`函数来实现快速排序的分区和排序逻辑。 - `Partition`函数负责分区操作,它接收一个顺序表`L...
二叉树建立遍历冒泡排序快速排序算法:C语言编程实现10个数据结构课程设计实例.zip 二叉树建立遍历冒泡排序快速排序算法:C语言编程实现10个数据结构课程设计实例.zip 二叉树建立遍历冒泡排序快速排序算法:C语言...
同时,配合"快速排序.cpp"的源代码,可以进一步分析和调试算法,加深对快速排序逻辑的理解。 快速排序的平均时间复杂度是O(n log n),在最坏情况下,当输入数组已经部分有序时,时间复杂度退化为O(n^2)。不过这种...
这个名为"Java各种排序算法代码.zip"的压缩包包含了一系列实现不同排序算法的Java源代码。排序算法是计算机科学中的基本概念,用于对一组数据进行排列。下面将详细讨论这些算法及其在Java中的实现。 1. 冒泡排序...
当然,我可以为您详细解释Java中快速排序算法的实现,并提供一个代码示例。快速排序是一种高效的排序算法,基于分治策略。其基本步骤如下: 1. 选择一个基准元素(pivot),通常选择数组的第一个元素或者最后一个...
提供的文件"冒泡、快速排序算法比较程序.txt"中可能包含了这两类排序算法的C语言实现代码,而"www.pudn.com.txt"可能是下载或资源来源的说明文件。通过阅读和分析这些代码,你可以更直观地了解这两种排序算法的实现...