经典排序算法(12)——总结

一、排序算法简介

排序算法(Sorting algorithm)是一种能将一串数据,依照特定排序方式(依照其中的某个或某些关键字的大小)进行排列的一种算法。

常见的排序算法有:交换排序(冒泡排序、快速排序)、插入排序(直接插入排序、折半插入排序、希尔排序)、选择排序(直接选择排序、堆排序)、归并排序、桶排序(桶排序、基数排序)、计数排序等。


二、排序算法评价标准

(1)时间复杂度

时间复杂度是指执行算法所需要的计算工作量,它定量描述了该算法的运行时间。

(2)空间复杂度

空间复杂度是指执行这个算法所需要的内存空间,是算法在运行过程中临时占用存储空间大小的量度。

(3)稳定性

一个排序算法是稳定的,就是当有两个相等记录的关键字R和S,且在原本的序列中R出现在S之前,在排序过的序列中R也将会是在S之前。稳定的排序方法只能是相邻的元素进行交换。


三、经典排序算法详细介绍

(1)冒泡排序算法详解             http://blog.csdn.net/guoweimelon/article/details/50902597

(2)快速排序算法详解             http://blog.csdn.net/guoweimelon/article/details/50903712

(3)直接插入排序算法详解      http://blog.csdn.net/guoweimelon/article/details/50904201

(4)折半插入排序算法详解      http://blog.csdn.net/guoweimelon/article/details/50904206

(5)希尔排序算法详解            http://blog.csdn.net/guoweimelon/article/details/50904214

(6)直接选择排序算法详解      http://blog.csdn.net/guoweimelon/article/details/50904224

(7)堆排序算法详解                 http://blog.csdn.net/guoweimelon/article/details/50904231

(8)归并排序算法详解             http://blog.csdn.net/guoweimelon/article/details/50904237

(9)通排序算法详解                 http://blog.csdn.net/guoweimelon/article/details/50904245

(10)基数排序算法详解           http://blog.csdn.net/guoweimelon/article/details/50904252

(11)计数排序算法详解          http://blog.csdn.net/guoweimelon/article/details/50904257


四、经典排序算法性能比较



参考文献:

1、排序算法-维基百科 https://zh.wikipedia.org/wiki/%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95

2、十种排序算法总结(冒泡、插入、选择、希尔、归并、堆、快速,计数,桶,基数)

      http://blog.csdn.net/jnu_simba/article/details/9705111

3、八大排序算法 http://blog.csdn.net/hguisu/article/details/7776068

4、视觉直观感受 7 种常用的排序算法 http://blog.jobbole.com/11745/

5、经典排序算法总结与实现 http://wuchong.me/blog/2014/02/09/algorithm-sort-summary/

6、8大排序算法图文讲解 http://www.cricode.com/3212.html

7、常用排序算法总结(性能+代码)https://segmentfault.com/a/1190000002595152#articleHeader11

8、各种排序算法总结 http://www.jianshu.com/p/f5baf7f27a7e#

9、经典排序算法集锦 http://www.cnblogs.com/kkun/archive/2011/11/23/2260312.html

10、Data Structures & Algorithms http://www.cnblogs.com/yangecnu/category/548373.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/312770.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在Asp.Net Core MVC 开发过程中遇到的问题总结

1. Q: Razor视图中怎么添加全局模型验证消息A&#xff1a;使用ModelOnly<div asp-validation-summary"ModelOnly" class"text-danger"></div>2.Q&#xff1a;树形表格&#xff0c;使用的是bootstrap-tablejquery.treegridA&#xff1a;效果参考…

为什么子线程中不能直接更新UI

点击上方“dotNET全栈开发”&#xff0c;“设为星标”加“星标★”&#xff0c;每天11.50&#xff0c;好文必达全文约4000字&#xff0c;预计阅读时间8分钟当初有同事就碰到类似的问题&#xff0c;于是就总结了一些&#xff0c;那时写这篇文章是我还在第一家公司。今天有人提到…

解决问题的能力 10倍程序员

大家好&#xff0c;我是Z哥。今天我们聊的话题对大多数人来说应该都算是一个“痛点”&#xff0c;就是怎么提高自己解决问题的能力。我们的工作中&#xff0c;每天会遇到大大小小的很多问题。其中有些是之前从未遇到过的问题&#xff0c;这对很多人来说就会很棘手&#xff0c;不…

.NET Core 3.1正式发布,还不赶快升级!

点击蓝字关注我们 .NET Core 3.1于2019年12月3日正式发布&#xff0c;这是一个长期支持&#xff08;LTS&#xff09;版本&#xff0c;并且将支持三年&#xff0c;这个版本对.NET Core的许多方面进行了改进&#xff0c;建议您尽快升级。 .NET Core 3.1 的变更日志很小。唯一新增…

.NET Core Blazor 1-Blazor项目文件分析

简介Blazor是一个使用.NET技术用于代替JavaScript/typescript的前端WEB框架。在前端开发中使用.NET语言进行书写逻辑有利于我们的性能、可靠性和安全性。并且对于使用.NET开发人员而言&#xff0c;全栈的成本更低。截止文章发布时&#xff0c;.NET Core已经发布了3.1版本&#…

除了HTML、CSS与JS,现在WASM也是标准Web语言

大家应该知道&#xff0c;万维网联盟 W3C 认证的 Web 语言有 HTML、CSS 与 JavaScript&#xff0c;而近日联盟正式宣布 WebAssembly 核心规范&#xff08;WebAssembly Core Specification&#xff09;成为官方 Web 标准&#xff0c;这意味着 WebAssembly 成为了第 4 种 Web 语言…

DDD实战与进阶 - 值对象

概述作为领域驱动设计战术模式中最为核心的一个部分-值对象。一直是被大多数愿意尝试或者正在使用DDD的开发者提及最多的概念之一。但是在学习过程中&#xff0c;大家会因为受到传统开发模式的影响&#xff0c;往往很难去运用值对象这一概念&#xff0c;以及在对值对象进行持久…

C# Lazy Loading

前言按需加载对象延迟加载实际是推迟进行创建对象&#xff0c;直到对其调用后才进行创建初始化&#xff0c;延迟&#xff08;懒加载&#xff09;的好处是提高系统性能&#xff0c;避免不必要的计算以及不必要的资源浪费。常规有这些情况&#xff1a;对象创建成本高且程序可能不…

将 WinForms 应用从 .NET Core 3.0 升级到 3.1

点击上方蓝字关注“汪宇杰博客”导语我作为社区里的“拖控件之王”&#xff0c;拖控件贼心不死&#xff0c;有时候会维护一些老项目&#xff0c;其中包括一个2004年的WinForms 软件。9月份的时候我曾经将它迁移到了 .NET Core 3.0&#xff0c;因为代码实现完全没动&#xff0c;…

戴明博士:管理的十四项原则

爱德华兹戴明博士&#xff08;Dr. W. Edwards Deming&#xff09;于1982年首版发行的《走出危机》(Out of The Crisis)一书中&#xff0c;提出了组织管理的14条基本原则。书中戴明博士认为&#xff1a;当时的美国企业多致力于追求短期利润&#xff0c;缺乏不断推出新产品及完善…

在Windows系统中构建还原ASP.NET Core 源码

大家好&#xff0c;这几天试着从Github上拉取AspNetCore的源码&#xff0c;尝试着通过Visual Studio 打开&#xff0c;但是并不尽人意。我们需要去构建我们拉去的源代码&#xff0c;这样才可以通过VisualStudio可还原的项目。毕竟AspNetCore是一个巨型的项目集。先决条件在Wind…

蓝桥杯 平面切分(欧拉定理)

问题描述 平面上有 N条直线&#xff0c;其中第 i条直线是 y Ai*x B。 请计算这些直线将平面分成了几个部分。 输入格式 第一行包含一个整数N。 以下N行&#xff0c;每行包含两个整数 Ai, Bi。 输出格式 一个整数代表答案。 样例输入 3 1 1 2 2 3 3样例输出 6基本思路 …

用HttpReports快速搭建API分析平台

HttpReports简单介绍HttpReports 是 .Net Core下的一个Web组件&#xff0c;适用于 WebAPI 项目和 API 网关项目&#xff0c;通过中间件的形式集成到您的项目中, 通过HttpReports&#xff0c;可以让开发人员快速的搭建出一个 API 性能分析的基础报表网站。主要包含 HttpReports …

PAT(乙级) 1001 害死人不偿命的(3n+1)猜想 C++

卡拉兹(Callatz)猜想&#xff1a; 对任何一个正整数 n&#xff0c;如果它是偶数&#xff0c;那么把它砍掉一半&#xff1b;如果它是奇数&#xff0c;那么把 (3n1) 砍掉一半。这样一直反复砍下去&#xff0c;最后一定在某一步得到 n1。卡拉兹在 1950 年的世界数学家大会上公布了…

他,TypeScript GitHub Star 上海第一,全国第四!GitHub 总标星超两万!

前两天和老同学羡辙&#xff08;Apache Echarts 核心开发、百度最美工程师&#xff09;聊天。她分享了一个 GitHub 排名的网站给我。http://git-awards.com/users?typecity&languagetypescript&cityShanghai我看了下 TypeScript star 数量的排名。哇噻&#xff01;厉害…

PAT(乙级) 1002 写出这个数 (20point(s)) Python

读入一个正整数 n&#xff0c;计算其各位数字之和&#xff0c;用汉语拼音写出和的每一位数字。 AC代码 i input() count 0 for j in i:count count int(j) d {"0":"ling","1":"yi","2":"er","3"…

[原]排错实战——拯救加载调试符号失败的IDA

本文之前发表的时候有些问题&#xff0c;作为强迫症患者的我又重新编辑后再次发表。如果您已经看过&#xff0c;请忽略。望见谅。缘起 最近想借助IDA逆向一个函数。在windows下&#xff0c;调试器&#xff08;比如vs, windbg&#xff09;可以通过调试符号&#xff08;PDB&#…

数据结构 旅游规划(Dijkstra+Dfs)

题目&#xff1a; 有了一张自驾旅游路线图&#xff0c;你会知道城市间的高速公路长度、以及该公路要收取的过路费。现在需要你写一个程序&#xff0c;帮助前来咨询的游客找一条出发地和目的地之间的最短路径。如果有若干条路径都是最短的&#xff0c;那么需要输出最便宜的一条路…

如何运用DDD - 实体

概述本文将介绍领域驱动设计&#xff08;DDD&#xff09;战术模式中另一个常见且非常重要的概念 - 实体。相对战术模式中其他的一些概念&#xff08;例如 值对象、领域服务等&#xff09;来说&#xff0c;实体应该比较容易让人理解和运用。但是我们如何去发现所在领域中的实体呢…

数据结构 最大堆和最小堆

前言&#xff1a; 关于最大堆和最小堆的题目&#xff0c;我做过了很多次&#xff0c;但是好像没有一个是完全独立AC的。2021春季PAT考试的前一天&#xff0c;天梯赛校内赛还专门考了最小堆&#xff0c;我复习了一下&#xff0c;结果第二天PAT考了最大堆&#xff0c;又是没做出来…