`

排序算法(四)快速排序(C++)

阅读更多
快速排序,从最低位和最高位开始。

#include <iostream.h>
#include <stdio.h>

using namespace std;

int partition(int data[], int low, int high);
void sort(int data[], int low, int high);
void change(int data[], int low, int high);

int partition(int data[], int low, int high)
{
	int i= low, j = high;
	int pivotKey = data[low];
	while(i<j){
		while(i<j && data[j]>=pivotKey){
			j--;
		}
		if(i<j){
			data[i] = data[j];
			i++;
		}
		while(i<j && data[i] < pivotKey){
			i++;
		}
		if(i<j){
			data[j] = data[i];
			j--;
		}
	}
	data[i] = pivotKey;
	return i;
}

void change(int data[], int low, int high)
{
	int temp;
	temp = data[high];
	data[high] = data[low];
	data[low] = temp;
}

void sort(int data[], int low, int high)
{
	if(low < high)
	{
		int pivot = partition(data, low, high);
		sort(data, low, pivot-1);
		sort(data, pivot+1, high);
	}
}

int main()
{
	int data[10] = {32,43,54,21,43,46,67,34,48,56};
	for(int i=0; i<10; i++)
	{	
		cout<<"data["<<i<<"]="<<data[i]<<endl;
	}
	sort(data, 0, 9);
	for(int i=0; i<10; i++)
	{	
		cout<<data[i]<<"  "<<endl;
	}
}


分享到:
评论

相关推荐

    C++语言的算法实现包括插入排序冒泡排序堆排序快速排序

    本文将深入探讨四种在C++中实现的常见排序算法:插入排序、冒泡排序、堆排序和快速排序。这些算法各有特点,适用于不同的场景,理解并掌握它们对于提升编程能力至关重要。 1. **插入排序**: 插入排序是一种简单的...

    C++快速排序算法程序

    C++快速排序算法程序,用于处理大量数据, 并对这些数据进行快速的排序

    快速排序算法c++实现

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治法,通过选取一个“基准”元素,将数组分为两个子数组,使得左边的元素都小于基准,右边的元素都大于基准,然后对这...

    快速排序算法代码 C++

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治法(Divide and Conquer),通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的...

    7种常用排序算法实现(C++)(冒泡排序、选择排序、直接插入排序、希尔排序、堆排序、归并排序以及快速排序)

    这里我们将深入探讨七种常用的排序算法,并通过C++语言实现它们。这七种算法分别是:冒泡排序、选择排序、直接插入排序、希尔排序、堆排序、归并排序和快速排序。 1. **冒泡排序**: 冒泡排序是最基础的排序算法之...

    C/C++排序算法

    这里我们将深入探讨四种经典的排序算法:快速排序、插入排序、冒泡排序以及希尔排序。 1. **快速排序(Quick Sort)** 快速排序是一种效率较高的分治算法,由英国计算机科学家C.A.R. Hoare在1960年提出。其基本...

    C++实现希尔、快速、堆排序、归并排序算法

    本文将详细介绍C++中实现的希尔排序、快速排序、堆排序和归并排序这四种经典排序算法。 希尔排序,由Donald Shell于1959年提出,是一种改进的插入排序。它的基本思想是通过设置一个增量序列,将待排序的元素按照...

    C++,快速排序算法的实现

    快速排序是一种高效的、基于分治思想的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本步骤包括选择一个“基准”元素,将数组分为两个子序列,使得一个子序列的所有元素都比基准小,另一个子序列的...

    C++ 排序算法大全

    在编程领域,排序算法是计算机科学中的核心概念,特别是在C++这样的高级编程语言中。排序算法主要用于对数据序列进行重新排列,使其按照特定规则(如升序或降序)有序。C++提供了丰富的内置排序函数,如`std::sort`...

    C++10大排序算法PPT及代码示例,视频动图演示

    本资源包涵盖了C++实现的十大经典排序算法,包括PPT讲解和代码示例,以及生动的视频动图演示,帮助学习者深入理解各种排序算法的原理和实际应用。** 1. **冒泡排序**(Bubble Sort)是最基础的排序算法之一,通过...

    3种排序算法可视化程序 c++ 算法

    这是一个很好的方向,因为排序算法有很多变体和优化版本,如快速排序、归并排序、堆排序等。增加这些算法的可视化不仅可以增强项目的教育价值,也能为用户提供更全面的排序算法体验。 总结,这个C++项目提供了一种...

    C++排序算法对比(桶排序等)

    本文将深入探讨在C++中实现的几种主要排序算法,包括归并排序、插入排序、冒泡排序、希尔排序、快速排序以及桶排序,并对它们的原理、优缺点和适用场景进行比较。 首先,让我们逐一了解这些排序算法。 1. **归并...

    高级排序算法C++源码

    这篇描述涉及到了几个高级的排序算法,其中包括快速排序、桶排序和二分插入排序,这些都是高效且广泛应用的排序方法。让我们详细了解一下这些算法以及如何在C++中实现它们。 **快速排序** 是由C.A.R. Hoare在1960年...

    C++排序算法之快速排序

    C++排序算法之快速排序

    各种排序算法的C++综合

    在编程领域,排序算法是数据结构与算法学习中的基础部分,尤其在C++这样的系统级编程语言中,理解和掌握各种排序算法至关重要。本资源包包含了C++实现的选择排序、快速排序、堆排序、冒泡排序以及Shell排序这五种...

    总结了各种排序算法,并用C++代码实现,并有演示

    本资源"总结了各种排序算法,并用C++代码实现,并有演示",提供了丰富的学习材料,包括不同类型的排序算法以及它们的C++实现,还有可能的可视化演示,帮助理解每种算法的工作原理。 首先,让我们逐一了解常见的排序...

    C++实现常用排序算法(快速,归并,选择,谢尔,堆排序)

    在编程领域,排序算法是数据结构与算法学习中的核心部分,尤其在C++这样的强类型语言中,理解和熟练掌握各种排序算法对提升编程能力至关重要。本文将深入探讨五种常用的排序算法:快速排序、归并排序、选择排序、...

    常用c++排序算法(包括插入排序、冒泡排序、选择排序、快速排序、归并排序、希尔排序等)

    各种常用c++排序算法,包括插入排序、冒泡排序、选择排序、快速排序、归并排序、希尔排序等

    c++各种排序算法对比研究

    在编程领域,排序算法是计算机科学中的基础且重要的部分,特别是在C++这样的强类型语言中。本文将深入探讨C++中几种常见的排序算法,包括它们的原理、适用场景、时间与空间复杂度以及实际应用。 1. 冒泡排序...

    c++各种的排序算法

    以下将详细介绍C++中常见的几种排序算法:快速排序、归并排序、选择排序、桶排序、冒泡排序和插入排序。 1. **快速排序**: 快速排序是由英国计算机科学家C.A.R. Hoare提出的。它的基本思想是采用分治法,选取一个...

Global site tag (gtag.js) - Google Analytics