经典排序算法(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…

用HttpReports快速搭建API分析平台

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

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

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

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

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

如何运用DDD - 实体

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

Natasha v2.5.4 版与运行时实战

文章转载授权级别&#xff1a;BNatasha 是一个十分便捷的动态构建库&#xff0c;支持.NET Standard2.0 / Core3.0 ; 比起繁杂的 IL 指令和 Expression 的众多 API , Natasha 的构建方式更加友好简洁&#xff0c; 基于 Natasha 可以让动态工作变得傻瓜&#xff0c;简单&#xf…

.Net Core3.1下使用Swagger搭建web api项目

前言&#xff1a;微软于前天发布.net core 3.1正式版,并将长期支持3.1。所以我听到这个消息后就急忙下载.net core 3.1的SDK和Runtime,应该是公司最先用3.1的攻城狮了????。OK&#xff01;废话少说&#xff0c;今天的目的是基于.net core 3.1建一个web api的项目先下载.net…

一个值得学习的WPF开源项目

项目介绍此项目应用了Prism MVVM框架&#xff0c;项目展示数据来源于其他服务程序&#xff0c;使用的WebAPI通信&#xff0c;如果要正常运行此程序&#xff0c;需要您自己做一个WebAPI程序&#xff0c;由API接口提供数据驱动&#xff0c;其实直接查看代码最直接&#xff0c;有需…

程序员修神之路--打通Docker镜像发布容器运行流程

菜菜哥&#xff0c;我看了一下docker相关的内容&#xff0c;但是还是有点迷糊还有哪不明白呢&#xff1f;如果我想用docker实现所谓的云原生&#xff0c;我的项目该怎么发布呢&#xff1f;这还是要详细介绍一下docker了Docker 是一个开源的应用容器引擎&#xff0c;基于 Go 语言…

用.NET解索尼相机ARW格式照片

用.NET解索尼相机ARW格式照片目前常用的照片格式是 .jpg&#xff0c;它只能提供 8bit的色彩深度&#xff0c;而目前主流的相机都能提供高达 12bit- 14bit的色彩深度&#xff0c;动态范围和后期处理能力也大大增加&#xff0c;这也是为什么不少摄影爱好者会优先使用相机提供原始…