排序算法 您所在的位置:网站首页 简单排序包括 排序算法

排序算法

2024-04-17 23:02| 来源: 网络整理| 查看: 265

排序算法 —— 快速排序基本概念

快速排序(Quicksort)是一种排序算法,最早由东尼·霍尔提出。在平均状况下,排序 n 个项目要 Ο(n log n) 次比较。在最坏状况下则需要 Ο(n2) 次比较,但这种状况并不常见。事实上,快速排序通常明显比其他 Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上被优化掉。

算法描述

快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists)。快速排序又是一种分而治之思想在排序算法上的典型应用。本质上来看,快速排序应该算是在冒泡排序基础上做的改进。

快速排序的名字起的是简单粗暴,因为一听到这个名字你就知道它是怎么排序的。它的大概思路就是:找到一个基准点(一般是数组中间的数),然后将数组分为两个部分,一部分比这个基准点小,一部分比这个基准点大,然后递归对这两部分排序即可。

算法步骤选择一个基准元素,将列表分割成两个子序列。对每个子序列重复步骤1,直到列表只有一个元素为止。合并排序。返回排序后列表。结束。算法伪代码function quickSort(arr[], low, high) if (low socre >= other.socre && this->age >= other.age && this->name >= other.name; } // Now there are some get parameters function for this calss: const string &getName() const { return this->name; } int getAge() const { return this->age; } int getScore() const { return this->socre; } private: string name; int age; int socre; }; // This is a unit test function for Person class. void testPerson() { Person person1("Alice", 20, 90); Person person2("Bob", 21, 80); Person person3("Charlie", 22, 85); // Test operator> assert(person1 > person2); assert(!(person1 > person3)); // Test operator< assert(person2


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有