图是借的别人的,他的排序是以右边第一个为基数,而我下面的程序是以左边第一个作为开始时候的基数。不过效果一样。
//快速排序 #include <iostream> using namespace std; #define n 10 int Division(int a[],int left,int right){//分割函数 int base=a[left]; //取左侧元素为基准元素 while(left<right){ while(left<right&&a[right]>base) //从右向左找第一个比基准小的元素 --right; a[left]=a[right];//将比基数小的数移到左边 while(left<right&&a[left]<base)////从左向右找第一个比基准大的元素 ++left; a[right]=a[left];//将比基数大的数移到右边 } a[left]=base; return left; } //快速排序 void QuickSort(int a[],int left,int right){ int i,j; if(left<right){ //左侧序号小于右边的序号 i=Division(a,left,right); //分割 QuickSort(a,left,i-1);//左侧进行递归调用 QuickSort(a,i+1,right);//右侧进行递归调用 } } int main() { int i,a[n]; for(i=0;i<n;i++){ //输入数组(或者自己写随机生成函数) cin>>a[i]; } QuickSort(a,0,n-1);//调用快速排序方法 cout<<"排序后:"<<endl; for(i=0;i<n;i++){ //输出排序完成的结果 cout<<a[i]<<" "; } return 0; }
初入算法!
相关推荐
用python实现经典的快速排序算法,运用递归和分治思想实现,代码简洁高效,易于理解。
"C语言实现快速排序算法" 快速排序算法是由C. A. R. Hoare在1962年提出的一种高效的排序算法。该算法采用了分治策略,将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,...
在本文中,我们将深入探讨基于FPGA的并行快速排序算法,特别关注“位宽可设”的特性。这种算法能够高效地处理大量数据,并且在硬件实现上具有很高的灵活性。我们将从以下几个方面来阐述这个主题: 一、快速排序算法...
快速排序 快速排序(Quicksort)是对冒泡排序的一种改进。由C.A.R.Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按...
快速排序算法自1960年由英国计算机科学家托尼·霍尔提出以来,已成为排序算法中的一种经典。该算法以其高效的排序速度和简洁的实现原理,广泛应用于各类数据处理和计算机科学领域。为了深入理解快速排序算法,本文将...
快速排序算法实现 快速排序算法是一种高效的排序算法,基于 Divide and Conquer 策略,通过选择一个基准元素,partition数组,使得左侧元素小于基准,右侧元素大于基准,然后递归地对左侧和右侧元素进行排序。 ...
以下是一个简单的Python快速排序算法示例: ```python def quick_sort(arr): if len(arr) return arr pivot = arr[len(arr) // 2] left = [x for x in arr if x ] middle = [x for x in arr if x == pivot] ...
快速排序算法通过多次比较和交换来实现排序,其排序流程如下: 1、首先设定一个分界值,通过该分界值将数组分成左右两部分。 2、将大于或等于分界值的数据集中到数组右边,小于分界值的数据集中到数组的左边。此时...
指针在快速排序算法中发挥着至关重要的作用。它们不仅帮助我们高效地进行数组的分区操作,还使得算法能够以递归的方式优雅地处理子数组。快速排序的效率和性能在很大程度上依赖于指针的正确使用和管理。 本文详细...
算法的学习,分治
quickSort 方法实现了快速排序算法。通过选取一个基准值,将数组划分为左右两个子数组,并递归调用快速排序对子数组进行排序。在 partition 方法中,我们选择最右边的元素作为基准值,然后使用双指针进行比较和交换...
c语言版本的数据结构的快速排序算法,适用于新手学习
快速排序:分别使用Java和Python实现快速排序算法.zip 快速排序:分别使用Java和Python实现快速排序算法.zip 快速排序:分别使用Java和Python实现快速排序算法.zip 快速排序:分别使用Java和Python实现快速排序算法....
c语言实现快速排序算法
这个代码是利用快速排序算法,求第K大的数。 快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后...
Java 快速排序,目前来说效率很高的一种排序算法,好理解。
### 快速排序算法C语言实现与优化 #### 一、快速排序算法的基本原理 快速排序算法是一种基于分治策略的高效排序算法。其基本思想是通过一趟排序将待排序的记录分隔成独立的两部分,其中一部分的所有记录比另一部分...