MIT的课程,今天实现了个快速排序,开始的时候理解错了,晕死
这个代码写起来挺快的,而且速度也是排序里面算是很快很快的了,所以叫做快速排序么:
快速排序(Quicksort)是对冒泡排序的一种改进。由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
#include <iostream>
using namespace std;
int a[10] = {32, 21, 67, 11, 5, 43, 99, 18, 22, 87};
void quickSort(int p, int q)
{
if(p < q)
{
int x = a[p];
int i = p;
for(int j = p+1; j < q; j++)
{
if(a[j] < x)
{
i++;
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
int temp = a[p];
a[p] = a[i];
a[i] = temp;
quickSort(p, i);
quickSort(i+1, q);
}
}
int main()
{
quickSort(0, 10);
for(int i = 0; i < 10; i++)
{
cout << a[i] << " ";
}
cout << endl;
}
个人感觉网上的代码没有我写的那么容易理解吧,嘿嘿,得到大师真传,自信一下~~
分享到:
相关推荐
本文将探讨如何使用这两种语言实现几种基本的排序算法:冒泡排序、选择排序,以及两种全比较排序(并行和串行)。 首先,让我们了解一下排序算法。排序是计算机科学中最基础的操作之一,它涉及到将一组数据按照特定...
本文将深入探讨四种在C++中实现的常见排序算法:插入排序、冒泡排序、堆排序和快速排序。这些算法各有特点,适用于不同的场景,理解并掌握它们对于提升编程能力至关重要。 1. **插入排序**: 插入排序是一种简单的...
C++是面向对象的编程语言,它提供了丰富的库支持和高效的语言特性,非常适合实现各种算法,包括快速排序。在C++中实现快速排序,通常需要以下步骤: 1. **选择基准元素**:可以随机选取数组中的一个元素作为基准,...
读书笔记:算法导论C++实现
2、熟练使用高级编程语言实现不同的快速排序算法。 3、利用实验测试给出不同快速排序算法的性能以理解其优缺点。 快速排序是算法导论中的经典算法。在本实验中,给定一个长为 n 的整数数 组,要求将数组升序排序。
其中,排序算法如冒泡排序、选择排序、插入排序、快速排序、归并排序以及堆排序等,是基础且重要的部分,它们不仅在理论上有研究价值,而且在实际应用中有着广泛的应用。搜索算法如二分查找、广度优先搜索(BFS)和...
请参考算法导论第三版英文版Introduction to Algorithms 3rd Edition,本程序为第一章到第八章重要排序等算法的c/c++实现。IDE环境为vc++ 6.0。函数名称与算法导论原文类似。 主要包括: 直接选择排序 归并排序 堆...
快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治策略,即将一个大问题分解为小问题来解决。快速排序的主要步骤包括选择一个基准元素、划分数组以及递归排序子数组。...
标题"排序算法之堆排序算法:用C++语言实现堆排序算法",意味着我们将讨论如何用C++编程语言来实现堆排序的过程。C++是面向对象的编程语言,具有丰富的库支持和高效的执行性能,是实现算法的理想选择。 描述"排序...
这七种算法分别是:冒泡排序、选择排序、直接插入排序、希尔排序、堆排序、归并排序和快速排序。 1. **冒泡排序**: 冒泡排序是最基础的排序算法之一,通过重复遍历待排序序列,比较相邻元素并交换位置来实现排序...
《算法设计、分析与实现:c、c++和java》特色是按照算法之间逻辑关系编排学习顺序,并对每一个经典算法,都给出了完整的c/c++/java三种主流编程语言的实现程序,是一本既能让读者清晰、轻松地理解算法思想,又能让...
本文将详细介绍C++中实现的希尔排序、快速排序、堆排序和归并排序这四种经典排序算法。 希尔排序,由Donald Shell于1959年提出,是一种改进的插入排序。它的基本思想是通过设置一个增量序列,将待排序的元素按照...
快速排序和归并排序是效率较高的排序算法,它们在C++中的实现通常涉及递归和指针操作。 3. **搜索算法**:包括线性搜索、二分搜索、深度优先搜索(DFS)和广度优先搜索(BFS)。二分搜索适用于有序数组,而DFS和BFS...
算法导论上的堆排序c++源程序||学习分享
在IT领域,排序算法是计算机科学中的基础但至关重要的部分,尤其在编程语言如C++中,理解并能熟练运用各种排序算法对于提升程序效率至关重要。以下是对标题和描述中涉及的主要排序算法的详细解释: 1. **插入类排序...
使用场景及目标:适用于需要深入理解快速排序算法原理、掌握快速排序实现方法的学习者。通过学习本文,读者可以了解快速排序的基本原理、性能分析及实际应用,从而提高编程技能和算法设计能力。 其他说明:本文不仅...
C++中的标准模板库(STL)虽然提供了sort函数,但理解并实现快速排序算法有助于深入理解排序过程。 快速排序的主要步骤包括: 1. **选择基准**:从待排序的数组中选择一个元素作为基准,通常选择第一个或最后一个...
毕业设计:基于C++的AP聚类算法设计与实现 毕业设计:基于C++的AP聚类算法设计与实现 毕业设计:基于C++的AP聚类算法设计与实现 毕业设计:基于C++的AP聚类算法设计与实现 毕业设计:基于C++的AP聚类算法设计与实现 ...
这里我们将深入探讨标题中提到的五种排序算法——归并排序、快速排序、希尔排序、插入排序和选择排序,以及它们在C++中的实现。 1. **归并排序**: 归并排序是一种基于分治策略的排序算法。它将大问题分解为小问题...