- 博客(7)
- 问答 (1)
- 收藏
- 关注
原创 数据结构与算法之七(划分算法与快速排序)
旁白:开始之前先回答一下上一节的问题,排序算法为什么要讨论是否稳定?也就是说相同关键字元素在前在后有什么区别吗? 网上有人举了一个栗子:假如发奖学金,排在前三个的有奖,结果一排序把原来在第三位的并列第三名给弄到第四位了,他估计不会乐意。 分析:实际上这个栗子不太准确,因为问题的产生是由于现实的需要,现实中估计需要并列第三名才能解决问题。也就是现实中存在这样的矛盾,有些时候的问题只
2017-10-31 12:10:23 448
原创 数据结构与算法之六(希尔排序,非稳定排序)
旁白:这一节的内容消化起来没这么容易,那个pdf说的也比较复杂,建议大家在网上搜资料去看原理还容易一点。希尔排序1.介绍 还记得前面说的三种基本排序吗?插入排序可以说是性能较高的一种,但是如果完全逆序的插入排序,复制和移动效率依然低下。在此基础上有人提出了希尔排序,基于n-增量排序对插入排序进行优化。所谓n增量就是从原序列中选出间隔n的序列2.原理 对于序列序列9,8,7,6,
2017-10-30 17:12:43 520
原创 数据结构与算法之五(递归与递归消除)
递归是一种函数调用自身的手法。比如阶乘,可以如此实现:public long f(int n){ if(n==1) return 1; //停止调用 return n*f(n-1); //调用自身}》 上面也标出了递归两个特点。》 递归的效率:方法调用是有一定开销的,同时每次调用方法时需要将方法参数和这个方法的返回地址压入栈中,如果调用次数太多,需要大量内存空间存储,可能
2017-10-24 00:16:08 6914
原创 数据结构与算法之四(链表)
链表的概念在学c++的时候就接触了,就是一个个节点,每个节点里存在对下一个节点的引用。大概结构如下:class Node{ //节点的其他属性 ... //引用下一个节点 Node next;}这样一个个节点上一个连下一个就形成了链表,概念很简单。如果知道第一个节点的内存地址,那么可以顺藤摸瓜找到其他节点。这种存储方式的好处是插入和删除时不需要做移动操作,只要改一下
2017-10-20 02:31:13 261
原创 数据结构与算法之三(栈和队列的java实现)
栈栈在java中的实现方式是:public class Stack<E> extends Vector<E> Vector向量可以理解为高级的数组,因为它里面通过一个Object[]数组来维护所有元素,并且实现了该数组的管理以及动态增长。所以Stack本质上就是一个数组,通过继承Vector,同时提供Stack特性的几个方法push,pop,peek等,原理比较简单。队列》一般队列 队列的特点是先
2017-10-18 16:26:19 579 1
原创 数据结构与算法之一(三种简单排序)
重新整理数据结构与算法,之前的C版很不习惯,后来一段时间转java后台没怎么继续了。发现有一本Java数据结构和算法.(第二版),之后的内容按照这个来描述,程序都用java来写。跟高数一样也是立flag每日一更。今天简单点,三个简单排序,入门级算法,具体不实现了。1.冒泡排序第一趟 4,3,2,5,6 3,4,2,5,6 3,2,4,5,6第二趟 2,3,4,5,6结束复杂度分析: 对于长
2017-10-18 11:53:20 465
原创 高等数学复习之一(函数与极限)
今天开始复习高数,立一个flag每日一更。之前数据结构挂掉是开发用java,学习c版数据结构很是不适应,希望这个能持续下去。人工智能时代到来,数学的重要性不言而喻,这颗种子半年前就已经萌芽,一直没实施。在读《数学之美》这本书的时候,让我觉得数学真的是门很重要的学科,体会到为啥这东西被归属到自然科学,体会到数学的无止境,应该长期学习下去。我感觉它是世界上最伟大的学科没有之一,如果再来一次,填志愿我一定
2017-10-16 17:09:25 11641
空空如也
一道c语言指针的思考题
2016-10-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人