DS
文章平均质量分 52
数据圈
踏踏实实搞学习
展开
-
【数据结构和算法之排序】快速排序
1.快速排序过程第一步:选基准元素temp(默认选待排数组第一个值)第二步:从最高位开始向左依次遍历,j--,直到遇到第j个元素a[j]<temp,那么交换a[j]和a[0]或者将temp直接赋值给a[j];第三步:从a[i](此时i=0)处向右依次遍历,i++,直到遇到第i个元素a[i]>temp,那么交换temp和a[i]或者将temp值直接赋给a[i];【PS:此时赋值前的temp所在位置原创 2017-09-14 14:43:16 · 588 阅读 · 0 评论 -
【校招笔试面试之字符串处理】在字符串中找出连续最长的数字串。
package com.zifuchuan;import java.util.Scanner;/** * 题目:在字符串中找出连续最长的数字串。 * 示例: * 输入 abcd12345ed125ss123058789 输出 123058789,9 * 思路1:1.读入字符串,并存储在数组或者String对象中 *原创 2017-08-17 09:58:57 · 559 阅读 · 0 评论 -
【java笔试系列五】List、Set和Map
一、Set,List,Map的区别java集合的主要分为三种类型:Set(集)List(列表)Map(映射)要深入理解集合首先要了解下我们熟悉的数组:数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),而JAVA集合可以存储和操作数目不固定的一组数据。 所有的JAVA集合都位于 java.util包中! JAVA集合只能存放引用类型的的数据,不转载 2017-06-27 10:46:31 · 556 阅读 · 0 评论 -
【java笔试系列四】Java实现栈Stack和队列Queue
目录(1)栈的创建(2)队列的创建(3)两个栈实现一个队列(4)两个队列实现一个栈(5)设计含最小函数min()的栈,要求min、push、pop、的时间复杂度都是O(1)(6)判断栈的push和pop序列是否一致1、栈的创建:我们接下来通过链表的形式来创建栈,方便扩充。代码实现:public class Stack {public Node head; public Node current;/转载 2017-06-26 16:22:47 · 875 阅读 · 1 评论 -
【java版】数据结构与算法分析学习之路【二】表【数组+链表】
PS:我一直都在想到底应该用什么样的思路去学习数据结构,用什么样的方式去记录学习的内容可以做到篇幅最少但是内容最精华?毕竟之前不是计算机科班出身,对于很多东西理解起来比较困难。然后我在网上看了很多大牛同学的博客,各种风格的都有,不乏有的长篇大论,给大家分析的非常清楚,善于从非技术的角度去切入,方便我们初学者理解;也有一些大牛以精简的风格为主,只写精华,免去很多繁琐的介绍,这种比较适合有一定基础的,原创 2016-09-22 11:33:52 · 858 阅读 · 0 评论 -
【java版】数据结构与算法分析学习之路【一】前言
一.数据结构和算法概述?【框范围】基础数据结构主要包括表【数组+链表】、栈、队列【散列表】、树、图、堆。高级数据结构包括伸展树、红黑树、确定性跳跃表、AA树、treap树、k-d树、配对堆。常用的算法内容包括排序算法【插入排序+希尔排序+堆排序+归并排序+快速排序+桶式的排序+外部排序】、图论算法【最短路径算法】、其他【贪婪算法+分治算法+动态规划+随机化算法+回溯算法】、摊还分析【二原创 2016-09-22 09:48:37 · 2490 阅读 · 2 评论 -
Java重要类之LinkList类详解
一.LinkList概述LinkedList是一个继承于AbstractSequentialList的双向链表。它也可以被当作堆栈、队列或双端队列进行操作。LinkedList 实现 List 接口,能进行队列操作。LinkedList 实现Deque接口,即能将LinkedList当作双端队列使用。LinkedList 实现了Cloneable接口,即覆盖了函数clone(),能克隆。原创 2016-09-23 17:25:59 · 26781 阅读 · 0 评论 -
Java重要类详解之ArrayList类
一.ArrayList概述ArrayList 是一个数组队列,相当于动态数组。与Java中的数组相比,它的容量能动态增长。它继承于AbstractList,实现了List,RandomAccess[随机访问], Cloneable[可克隆], java.io.Serializable[序列化]这些接口。ArrayList 继承了AbstractList,实现了List。它是原创 2016-09-23 11:49:34 · 5082 阅读 · 0 评论 -
数据结构学习六 树
一、定义 专业定义:有且只有一个称为根的结点;有若干个互不相交的子树,这些子树本身也是一棵树 通俗定义:树是由结点和边(即指针)组成;每一个结点只有一个父结点但可以有多个子结点;但是有一个结点例外,该结点没有父结点,此结点称为根结点 专业术语 ● 结点 / 父结点(只有一个) / 子结点 / 子孙 / 堂兄弟 ● 深度:从根结点到最底层结点的层数(根结点是第一层) ● 叶子结点:没有子结点的结点 ● 非终端结点:实际就是非叶子结点,即有子结点的结点 ● 度:子结点原创 2016-08-07 21:13:05 · 464 阅读 · 3 评论 -
数据结构学习五 递归
1、定义 一个函数自己直接或间接调用自己2、函数的调用 当在一个函数的运行期间调用另一个函数时,在运行被调函数之前,系统需要完成三件事:将所有的实际参数、返回地址等信息传递给被调函数保存为被调函数的局部变量(包括形参)分配存储空间将控制转移到被调函数的入口从被调函数返回主调函数之前,系统也要完成三件事:保存被调函数返回结果释放被调函数所占的存储空间依照被调函数保存的返回地址将控制转移到调用函数 当有多个函数相互调用时,按照“后调用先返回”的原则,上述函原创 2016-08-07 20:50:33 · 406 阅读 · 2 评论 -
数据结构学习四 队列
一.定义【双端操作】一种可以实现“先进先出”的存储结构【不用管内部是数组还是链表】 队列类似于排队买票二.分类 ● 链式队列 ---- 用链表实现 ● 静态队列 ---- 用数组实现【循环队列】静态队列通常都必须是循环队列 1. 循环队列【解决内存浪费问题】①静态队列为什么必须是循环队列普通队列的参数front和rear只增不减,导致内存浪费普通队列:front和rear必须错开,所指的元素必须相邻!出队从头部,即front;入队从尾部,即rear;添加和删除时fron原创 2016-08-06 22:39:50 · 325 阅读 · 0 评论 -
数据结构学习三 栈
一.定义 ● 分配内存的方式栈 静态分配堆 动态分配 满足“先进后出”原则的数据存储方式二.分类 ● 静态栈 ● 动态栈【较常用 可以理解为链表】只能操作头部三.算法 ● 出栈 ● 压栈原创 2016-08-04 22:14:15 · 364 阅读 · 0 评论 -
数据结构学习二 数据结构之链表图解版【创建,遍历,删除,插入】
图解链表:● 建立动态链表 待插入的结点p1数据部分初始化,该结点被头结点head、尾结点p2同时指向 1.任务是开辟结点和输入数据 2.并建立前后相链的关系p1重复申请待插入结点空间,对该结点的数据部分赋值(或输入值) P2->next 指向p1新开辟的结点。P2指向新结点p2=p1 ● 遍历链表1.单向链表总是从头结点开始的; 2.每访问一个结点,就将当前指针向该结点的下一个原创 2016-07-29 22:41:52 · 2627 阅读 · 0 评论 -
数据结构学习二 数据结构之链表代码版【创建,遍历,删除,插入】
代码:/******动态链表的建立、删除、插入的完整程序*****/#include "stdio.h"#include "string.h"#include "stdlib.h"#define Len sizeof(struct student) //定义一个结构体等长的常量len,用于给新的结构体分配空间/******************************原创 2016-07-29 22:35:19 · 518 阅读 · 0 评论 -
数据结构学习一 数据结构概述及预备知识
数据结构概述一.什么是数据结构1.定义 如何把现实世界中大量而复杂的问题以特定的数据类型【个体】和特定的存储结构【个体之间关系】保存到主存储器中(内存中),以及在此基础上为实现某个功能(比如查找某个元素,删除某个元素),对所有元素进行排序而执行的响应操作,这个响应的操作也叫做算法 2.算法 人事管理—-树(存在上下级关系问题) 交通管理—-图(原创 2016-07-26 22:17:16 · 657 阅读 · 0 评论 -
【数据结构与算法之排序】归并排序
1.归并排序过程归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。合并两个有序数列经典实现代码【合并两个有序数列的时间复杂度为O原创 2017-09-14 17:35:32 · 579 阅读 · 0 评论