
数据结构与算法
csshuke
这个作者很懒,什么都没留下…
展开
-
八大排序(C语言)
原创 八大排序(C语言) ...转载 2019-11-07 15:48:24 · 355 阅读 · 0 评论 -
常用七大经典排序算法总结(C语言描述)
目录一.交换排序1.冒泡排序2.快速排序二.插入排序1.直接插入排序2.希尔(shell)排序三.选择排序1.直接选择排序2.堆(Heap)排序四.归并排序 正文简介 其中排序算法总结如下:回到顶部一.交换排序 交换排序的基本思想都为通过比较两个数的大小,当满足某些条件时对它进行交换从而达到排序的目的。1.冒泡排序 基本思想:比较相邻的两个数,如果前者比后者大,则进行交换。每一轮排序结束,选...转载 2018-03-29 00:07:34 · 859 阅读 · 0 评论 -
九大排序算法-C语言实现及详解
概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速排序的平均时间...转载 2018-03-29 00:06:43 · 399 阅读 · 0 评论 -
快速排序法详解
快速排序法(QuickSort)是一种非常快的对比排序方法。它也Divide-And-Conquer思想的实现之一。自从其产生以来,快速排序理论得到了极大的改进,然而在实际中却十分难以编程出正确健壮的代码。本文将对快速排序算法的基本理论和编程实践方面做作一个全面的讲解。在本文讲解中,将忽略很多细枝末节,试图给读者形成一个非常具体的快速排序形象。1.快速排序---基本理论因为该算法是Divi转载 2017-11-15 01:50:14 · 210 阅读 · 0 评论 -
NP问题真的很难理解
希望通过这篇文章可以不仅让计算机相关专业的人可以看懂和区分什么是P类问题什么是NP类问题,更希望达到的效果是非专业人士比如学文科的朋友也可以有一定程度的理解。有一则程序员界的笑话,就是有一哥们去google面试的时候被问到一个问题是:在什么情况下P=NP,然后他的回答是”当N=1的时候”。这是我第一次听说P=NP问题,大概是在临近毕业为找工作而准备的时候。这几天科技类新闻的头条都被转载 2017-07-10 10:13:22 · 27850 阅读 · 9 评论 -
可能与不可能的边界:P/NP问题趣史
作者:Lance Fortnow译者:杨帆读者:锅巴GG在这本书里,我们将探讨许多计算问题,其中一部分可能永远都无法用简单的计算得到答案。试着解答它们是计算机科学,乃至整个数学和科学领域最重要的挑战。人们给这些问题起了一个有些奇怪的名字:P/NP问题。P/NP是克雷数学研究所公布的7个千禧年数学难题之一,该研究所为求解这道难题设立了百万美元的奖金。不过,P/NP问题的意义远不止转载 2017-07-18 00:25:02 · 4304 阅读 · 0 评论 -
八大排序算法
版权声明:本文为博主原创文章,未经博主允许不得转载。注明:转载请提示出处:http://blog.youkuaiyun.com/hguisu/article/details/7776068目录(?)[+]概述1插入排序直接插入排序Straight Insertion Sort 2 插入排序希尔排序Shells Sort3 选择排序简单选择排序Simple Sel转载 2017-07-18 00:19:05 · 328 阅读 · 0 评论 -
递归的效率问题及递归与循环比较
1.所谓的递归慢到底是什么原因呢?大家都知道递归的实现是通过调用函数本身,函数调用的时候,每次调用时要做地址保存,参数传递等,这是通过一个递归工作栈实现的。具体是每次调用函数本身要保存的内容包括:局部变量、形参、调用函数地址、返回值。那么,如果递归调用N次,就要分配N*局部变量、N*形参、N*调用函数地址、N*返回值。这势必是影响效率的。 2.用循环效率会比递归效率高吗?递归与循环转载 2017-07-04 13:43:32 · 604 阅读 · 0 评论 -
NP问题真的很难理解
希望通过这篇文章可以不仅让计算机相关专业的人可以看懂和区分什么是P类问题什么是NP类问题,更希望达到的效果是非专业人士比如学文科的朋友也可以有一定程度的理解。有一则程序员界的笑话,就是有一哥们去google面试的时候被问到一个问题是:在什么情况下P=NP,然后他的回答是”当N=1的时候”。这是我第一次听说P=NP问题,大概是在临近毕业为找工作而准备的时候。这几天科技类新闻的转载 2017-07-12 13:59:04 · 536 阅读 · 0 评论 -
什么是P问题、NP问题和NPC问题
这或许是众多OIer最大的误区之一。 你会经常看到网上出现“这怎么做,这不是NP问题吗”、“这个只有搜了,这已经被证明是NP问题了”之类的话。你要知道,大多数人此时所说的NP问题其实都是指的NPC问题。他们没有搞清楚NP问题和NPC问题的概念。NP问题并不是那种“只有搜才行”的问题,NPC问题才是。好,行了,基本上这个误解已经被澄清了。下面的内容都是在讲什么是P问题,什么是NP问转载 2017-07-11 21:14:41 · 263 阅读 · 0 评论 -
贪心算法详解
有人说贪心算法是最简单的算法,原因很简单:你我其实都很贪,根本不用学就知道怎么贪。有人说贪心算法是最复杂的算法,原因也很简单:这世上会贪的人太多了,那轮到你我的份? 贪心算法详解转载 2017-07-11 20:39:57 · 391 阅读 · 0 评论 -
大白话解析模拟退火算法
优化算法入门系列文章目录(更新中): 1. 模拟退火算法 2. 遗传算法 一. 爬山算法 ( Hill Climbing ) 介绍模拟退火前,先介绍爬山算法。爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解。 爬山算法实现很简单,其主要缺点是会陷入局部最优解,而不一定能搜索转载 2017-07-11 00:41:19 · 475 阅读 · 0 评论 -
C语言--冒泡法实现
#include int main() { int i,j,a[10]; printf("Please input ten numbers: \n"); for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<10-1;i++) {//n个数要进行n-1趟比较原创 2017-06-20 02:19:44 · 14316 阅读 · 4 评论 -
视觉直观感受 7 种常用的排序算法
1. 快速排序介绍:快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来,且在大部分真实世界的数据,可以决定设计的选择,减少所需时转载 2017-02-19 03:49:40 · 339 阅读 · 0 评论 -
静态链表
今天学习了下静态链表,简单总结如下: 静态链表相当于是用一个数组来实现线性表的链式存储结构,大概结构图如下 在静态链表中,每一个结点包含两部分内容,一部分是data(即有意义的数据),另一部分是cur(存储该元素下一个元素所在数组对应的下标)。有几个特殊的结点:首先是下标为0的结点转载 2015-11-23 09:05:24 · 745 阅读 · 0 评论