快速排序,从最低位和最高位开始。
#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++中实现的常见排序算法:插入排序、冒泡排序、堆排序和快速排序。这些算法各有特点,适用于不同的场景,理解并掌握它们对于提升编程能力至关重要。 1. **插入排序**: 插入排序是一种简单的...
C++快速排序算法程序,用于处理大量数据, 并对这些数据进行快速的排序
快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治法,通过选取一个“基准”元素,将数组分为两个子数组,使得左边的元素都小于基准,右边的元素都大于基准,然后对这...
快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治法(Divide and Conquer),通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的...
这里我们将深入探讨七种常用的排序算法,并通过C++语言实现它们。这七种算法分别是:冒泡排序、选择排序、直接插入排序、希尔排序、堆排序、归并排序和快速排序。 1. **冒泡排序**: 冒泡排序是最基础的排序算法之...
这里我们将深入探讨四种经典的排序算法:快速排序、插入排序、冒泡排序以及希尔排序。 1. **快速排序(Quick Sort)** 快速排序是一种效率较高的分治算法,由英国计算机科学家C.A.R. Hoare在1960年提出。其基本...
本文将详细介绍C++中实现的希尔排序、快速排序、堆排序和归并排序这四种经典排序算法。 希尔排序,由Donald Shell于1959年提出,是一种改进的插入排序。它的基本思想是通过设置一个增量序列,将待排序的元素按照...
快速排序是一种高效的、基于分治思想的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本步骤包括选择一个“基准”元素,将数组分为两个子序列,使得一个子序列的所有元素都比基准小,另一个子序列的...
在编程领域,排序算法是计算机科学中的核心概念,特别是在C++这样的高级编程语言中。排序算法主要用于对数据序列进行重新排列,使其按照特定规则(如升序或降序)有序。C++提供了丰富的内置排序函数,如`std::sort`...
本资源包涵盖了C++实现的十大经典排序算法,包括PPT讲解和代码示例,以及生动的视频动图演示,帮助学习者深入理解各种排序算法的原理和实际应用。** 1. **冒泡排序**(Bubble Sort)是最基础的排序算法之一,通过...
这是一个很好的方向,因为排序算法有很多变体和优化版本,如快速排序、归并排序、堆排序等。增加这些算法的可视化不仅可以增强项目的教育价值,也能为用户提供更全面的排序算法体验。 总结,这个C++项目提供了一种...
本文将深入探讨在C++中实现的几种主要排序算法,包括归并排序、插入排序、冒泡排序、希尔排序、快速排序以及桶排序,并对它们的原理、优缺点和适用场景进行比较。 首先,让我们逐一了解这些排序算法。 1. **归并...
这篇描述涉及到了几个高级的排序算法,其中包括快速排序、桶排序和二分插入排序,这些都是高效且广泛应用的排序方法。让我们详细了解一下这些算法以及如何在C++中实现它们。 **快速排序** 是由C.A.R. Hoare在1960年...
C++排序算法之快速排序
在编程领域,排序算法是数据结构与算法学习中的基础部分,尤其在C++这样的系统级编程语言中,理解和掌握各种排序算法至关重要。本资源包包含了C++实现的选择排序、快速排序、堆排序、冒泡排序以及Shell排序这五种...
本资源"总结了各种排序算法,并用C++代码实现,并有演示",提供了丰富的学习材料,包括不同类型的排序算法以及它们的C++实现,还有可能的可视化演示,帮助理解每种算法的工作原理。 首先,让我们逐一了解常见的排序...
在编程领域,排序算法是数据结构与算法学习中的核心部分,尤其在C++这样的强类型语言中,理解和熟练掌握各种排序算法对提升编程能力至关重要。本文将深入探讨五种常用的排序算法:快速排序、归并排序、选择排序、...
各种常用c++排序算法,包括插入排序、冒泡排序、选择排序、快速排序、归并排序、希尔排序等
在编程领域,排序算法是计算机科学中的基础且重要的部分,特别是在C++这样的强类型语言中。本文将深入探讨C++中几种常见的排序算法,包括它们的原理、适用场景、时间与空间复杂度以及实际应用。 1. 冒泡排序...
以下将详细介绍C++中常见的几种排序算法:快速排序、归并排序、选择排序、桶排序、冒泡排序和插入排序。 1. **快速排序**: 快速排序是由英国计算机科学家C.A.R. Hoare提出的。它的基本思想是采用分治法,选取一个...