#include <stdio.h>
#include <stdlib.h>
int Index(int *array,int left,int right){//用于得到枢轴的坐标
int temp = 0;
int *flag = &array[left];
//开始时写成了flag = array[left],这是不正确的,因为在下面做交换时,只是数据的交换,而不会将数据写到原来的地址值中去。
//也可以通过随机数产生参考值
while(left < right){
while(array[right] >= *flag && left < right){
right --;
}
while(array[left] <= *flag && left < right){
left ++;
}
if(left < right){
temp = array[left];
array[left] = array[right];
array[right] = temp;
}
}
/*下面代码块,交换参考值与索引处的数值,使得做不得数值都小于索引值,右边的数据 都大于索引值*/
temp = array[left];
array[left] = *flag;
*flag = temp;//开始时写成了flag,必须用指针才可以。
return left;
}
void sort(int *array,int left,int right){
int index = 0;
if(left < right){
index = Index(array,left,right);
sort(array,left,index-1);
sort(array,index+1,right);
}
}
int main()//测试驱动
{
int array[]={1,55,69,8,67,4,46,38,5,96,8,4,5,9,4,62,8,7,77,41,11,66};
int i = 0;
sort(array,0,21);
for(;i < 22; i++){
printf("%d\t",array[i]);
}
return 0;
}
分享到:
相关推荐
### 数据结构快速排序算法实现详解 #### 实验目标与背景 快速排序算法是计算机科学领域中一种非常高效且常用的排序算法,由英国计算机科学家托尼·霍尔(Tony Hoare)于1959年提出。它采用分治法策略来实现对数据...
在多种快速排序算法实现中,还包括了一些优化方法,比如插入排序优化、尾递归优化、多路归并优化等。这些优化方法能够提高快速排序在特定情况下的性能。 Java语言由于其简洁和高效的特性,被广泛用于实现快速排序...
快速排序算法实现 快速排序算法是一种高效的排序算法,基于 Divide and Conquer 策略,通过选择一个基准元素,partition数组,使得左侧元素小于基准,右侧元素大于基准,然后递归地对左侧和右侧元素进行排序。 ...
### 快速排序算法实现 在提供的代码中,可以看到一个简单的快速排序算法的C语言实现。下面将详细介绍这个实现过程: #### 函数定义 1. **`#include <stdio.h>`** 和 **`#include <stdlib.h>`**: 引入标准输入输出...
在这个“可视化展示快速排序算法实现效果”的项目中,开发人员使用了Qt库来创建一个交互式的图形用户界面,以便用户能够直观地看到快速排序的过程。Qt是一个跨平台的C++图形用户界面应用程序框架,它提供了丰富的UI...
### 快速排序算法在C#中的实现 #### 一、快速排序算法简介 快速排序是一种高效的排序算法,由英国计算机科学家托尼·霍尔(Tony Hoare)于1960年提出。该算法采用分治策略来把一个序列分为较小的两个子序列,再对这...
快速排序算法实现,随机输入一组数有序输出,用java语言实现
附件是Python 语言版的快速排序算法实现,文件绿色安全,仅供学习交流使用,欢迎大家下载学习交流!
快速排序算法实现,我自己做的,希望对大家有所帮助!!!
内容概要:本文详细介绍了快速排序算法在PHP中的实现步骤,包括递归和迭代两种实现方式。文章首先解释了快速排序的基本思想和算法基础,接着介绍了选择基准元素、分区操作和递归排序的具体步骤。随后,讨论了性能...
内容概要:本文展示了在MFC(Microsoft Foundation Classes)环境中,使用C++实现的针对CString类型数组的快速排序算法。首先导入了必要的头文件并定义了用于快速排序递归的QuickSort()函数,在这个过程中,程序对数...
这种测试代码是快速排序算法实现后,验证其正确性和效率的一种基本手段。 快速排序算法因其分而治之的思想,被广泛应用于各种需要高效排序的场景中。尽管有其他排序算法在最坏情况下也能够保证O(n log n)的性能,但...
内容概要:本文详细介绍了快速排序算法,一种高效的分治策略排序方法。主要解释了其基本原理,即选定一个基准点并按此基准分为高低两个区间递归处理,从而完成排序过程。针对这一算法的特点,在文中选取了几种常见且...
快速排序算法是一种有效的排序算法,虽然算法在最坏的情况下运行时间为 O(n^2),但由于平均运行时间为 O(nlogn),并且在内存使用、程序实现复杂性上表现优秀,尤其是对快速排序算法进行随机化的可能,使得快速排序在...
### 快速排序算法实现 快速排序的完整实现涉及递归地对子数组进行分区操作。具体步骤如下: ```cpp void Qsort(SqList& L, int low, int high) { if (low ) { // 如果子数组包含多于一个元素 int pivotloc = ...
下面给出一个简化的并行快速排序算法实现框架: ```c #include #include // 定义获取数据大小的函数 int GetDataSize() { // ... } // 定义并行快速排序函数 void para_QuickSort(int *data, int start, int ...
快速排序算法实现的关键在于基准值的选择和划分操作的效率。常见的基准值选择方法有:选择第一个元素、选择最后一个元素、选择中间元素、随机选择元素等。划分操作的效率取决于如何设计交换策略以及如何找到基准值...