原文:算法导论-1.排序算法

排序算法是最基础的一类算法。主要排序算法包括选择排序 插入排序 冒泡排序 合并排序 堆排序和快速排序。把这些排序算法全部实现一边,再把 算法导论 对应章节后面的习题做一遍,确实是系统学习算法的一个不错的开端。 选择排序 选择排序的想法很简单,把需要排序的数组看成一堆扑克牌:先查一遍,抽出最小的作为第一个张 在剩下的牌堆里再查一遍,选出最小的作为第二个元素 重复直到牌堆耗尽。想法简单的其代价就是运行 ...

2012-12-12 14:07 4 2646 推荐指数:

查看详情

算法导论】归并排序

1. 分治法:分治模型在每层递归的时都有三个步骤:   a.分解原问题为若干个子问题,这些子问题是原问题的规模较小的实例;   b. 解决这些子问题,递归地求解各子问题的规模足够小,则直接求解;   c. 合并这些子问题的解 成 原问题的解。 2. 归并排序算法完全遵循分治模式 ...

Mon Aug 27 03:43:00 CST 2018 0 921
快速排序——算法导论(8)

1. 算法描述 快速排序(quick-sort)与前面介绍的归并排序(merge-sort)(见算法基础——算法导论(1))一样,使用了分治思想。下面是对一个一般的子数组A[p~r]进行快速排序的分治步骤: ① 分解:数组A[p~r]被划分为两个子数组A[p~q]和A[q+1 ...

Tue Sep 22 05:00:00 CST 2015 0 7809
计数排序(counting-sort)——算法导论(9)

1. 比较排序算法的下界 (1) 比较排序 到目前为止,我们已经介绍了几种能在O(nlgn)时间内排序n个数的算法:归并排序和堆排序达到了最坏情况下的上界;快速排序在平均情况下达到该上界。 如果仔细观察,我们会发现:在排序的最终结果中,各元素之间 ...

Thu Sep 24 01:14:00 CST 2015 0 5494
算法导论之js实现--插入排序

插入排序 排序问题 输入:n个数的一个序列<a1, a2, ..., an> 输出:输入序列的一个排列<a1', a2', ..., an'>,满足a1' <= a2' <= ... <= an' 思路 插入排序的工作方式像许多人 ...

Mon Dec 18 18:03:00 CST 2017 0 2996
算法导论】之快速排序分析

前言 最近学习了算法导论上的快速排序部分,有不少体会。 今天就来分享一下。在此欢迎大家批评指正文中的错误。 快速排序 正文 1.快速排序的优点 说起快速排序,它的名字就显现出快排最大的优点————快。到底有多快呢?咱们用数据说话: 综合一般情况来说,快排确实有(亿点快)。特别是对较 ...

Thu Sep 23 06:44:00 CST 2021 0 97
算法导论中的四种基本排序

1. 前言 好久没写博客了,今天来一篇最近开始看的算法导论,这篇博客主要介绍插入排序,归并排序, ...

Fri Jun 23 05:47:00 CST 2017 0 2476
算法基础——算法导论(1)

1. 写在前面 本篇博文是学习算法导论的第一次记录,主要想介绍如何去证明算法的正确性;如何去评判一种算法的好坏;以及如何去改进算法。 2. 从插入排序说起 插入排序(insert-sort)是一种十分常见的算法,我们在生活中可能就经常在使用——玩扑克。考虑我们抓牌时的场景。首先,你的右手 ...

Sat Sep 05 10:04:00 CST 2015 0 2017
算法导论之插入排序和归并排序

  作为一名前线的码农不时地看一下算法和数据结构还是很有必要的,虽然《算法导论》这本书很难啃,但还是有必要啃一下的。算法这东西和某种编程语言关系不大,在大学的课堂上书上一般是用伪代码来描述算法的,而用C语言去实现。算法更多的是一种思想,一种解决问题的方法,多看看算法还是很有必要的,它可以开阔 ...

Tue May 05 18:11:00 CST 2015 0 2054
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM