#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年提出。它采用分治法策略来实现对数据...
快速排序算法实现 快速排序算法是一种高效的排序算法,基于 Divide and Conquer 策略,通过选择一个基准元素,partition数组,使得左侧元素小于基准,右侧元素大于基准,然后递归地对左侧和右侧元素进行排序。 ...
### 快速排序算法实现 在提供的代码中,可以看到一个简单的快速排序算法的C语言实现。下面将详细介绍这个实现过程: #### 函数定义 1. **`#include <stdio.h>`** 和 **`#include <stdlib.h>`**: 引入标准输入输出...
在这个“可视化展示快速排序算法实现效果”的项目中,开发人员使用了Qt库来创建一个交互式的图形用户界面,以便用户能够直观地看到快速排序的过程。Qt是一个跨平台的C++图形用户界面应用程序框架,它提供了丰富的UI...
### 快速排序算法在C#中的实现 #### 一、快速排序算法简介 快速排序是一种高效的排序算法,由英国计算机科学家托尼·霍尔(Tony Hoare)于1960年提出。该算法采用分治策略来把一个序列分为较小的两个子序列,再对这...
快速排序算法实现,随机输入一组数有序输出,用java语言实现
附件是Python 语言版的快速排序算法实现,文件绿色安全,仅供学习交流使用,欢迎大家下载学习交流!
快速排序算法实现,我自己做的,希望对大家有所帮助!!!
快速排序算法是一种有效的排序算法,虽然算法在最坏的情况下运行时间为 O(n^2),但由于平均运行时间为 O(nlogn),并且在内存使用、程序实现复杂性上表现优秀,尤其是对快速排序算法进行随机化的可能,使得快速排序在...
### 快速排序算法实现 快速排序的完整实现涉及递归地对子数组进行分区操作。具体步骤如下: ```cpp void Qsort(SqList& L, int low, int high) { if (low ) { // 如果子数组包含多于一个元素 int pivotloc = ...
快速排序算法 C语言实现 快速排序算法是一种高效的排序算法,通过递归的方式将记录分区排序。下面将详细介绍快速排序算法的实现细节。 首先,我们需要了解快速排序算法的基本思想。快速排序算法的核心思想是选择一...
希尔排序,冒泡排序、快速排序递归排序,快速排序非递归排序,快速排序改进算法
快速排序是一种高效的排序算法,由英国计算机科学家C. A. R. Hoare在1960年提出。其核心思想是分治法,通过一趟排序将待排序的数组分为两个子数组,使得左边的元素均小于右边的元素,然后分别对这两个子数组进行递归...
简单的C++快速排序程序,对新手来说有一定的帮助,通过递归的方法完成的排序,降低时间复杂度
快速排序是实际运用中用的最多的算法,虽然它在最坏的情况下会达到n^2,但它的平均性能非常好,期望时间复杂度为nlgn,而且隐含的常数因子非常小,并且是原址排序。 快速排序原理:从一组数中任意选出一个数,将...
这里的“只需两个时钟即可输出12个数据的排序结果”表明该设计实现了高度并行化的快速排序算法。 三、位宽可设 “位宽可设”是指用户可以根据实际需求调整排序数据的宽度。在不同的应用中,数据可能有不同的位宽,...