![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
指尖飞码
关注大数据开发、编程、算法
展开
-
数据结构学习---线性表
链式存储用指针表示逻辑结构,可以很方便的表示各种逻辑结构。顺序存储结构中,插入和删除结点需要大量的移动元素,效率很低。顺序存储结构既可以顺序存取也可以随机存取,而链式结构只可以顺序存取。对n个元素进行排序的时间复杂最快也要O(n),(初始有序),通常是O(nlog2n)或O(n^2);单链表只能顺序查找插入位置,时间复杂度为O(n);若为顺序表,可采用折半查找,时间复杂度可降至O(log2n);一原创 2016-05-16 19:22:29 · 414 阅读 · 0 评论 -
数据结构——排序算法
希尔排序的诞生是由于插入排序在处理大规模数组的时候会遇到需要移动太多元素的问题。 希尔排序的思想是将一个大的数组“分而治之”,划分为若干个小的数组,以 gap 来划分。 比如数组 [1, 2, 3, 4, 5, 6, 7, 8] ,如果以 gap = 2 来划分,可以分为 [1, 3, 5, 7] 和 [2, 4, 6, 8] 两个数组(对应的,如 gap = 3 ,则划分的数组为: [1,原创 2016-05-08 21:21:12 · 448 阅读 · 0 评论 -
数据结构——排序相关问题
对任意n个关键字排序的比较次数至少为log2(n!). 1、对任意的7个关键字进行基于比较的排序,至少要进行13次关键字之间的两两比较。一、直接插入排序基本思想每步将一个待排序的记录,按其顺序码大小插入到前面已经排序的字序列的合适位置,直到全部插入排序完为止。代码实现class SortTest{ public static void main(String[] args原创 2016-05-08 16:17:20 · 10549 阅读 · 1 评论 -
各种排序的总结
[内排序和外排序]内排序:指在排序期间数据对象全部存放在内存的排序。外排序:指在排序期间全部对象太多,不能同时存放在内存中,必须根据排序过程的要求,不断在内,外存间移动的排序。根据排序元素所在位置的不同,排序分: 内排序和外排序。内排序:在排序过程中,所有元素调到内存中进行的排序,称为内排序。内排序是排序的基础。内排序效率用比较次数来衡量。按所用策略不同,内排序又可分为插入排序(直接插入排序和希尔原创 2016-05-16 19:23:10 · 1646 阅读 · 1 评论 -
数据结构---链表操作(线性结构)
package lianbiao;import java.awt.HeadlessException;import java.util.Scanner;import org.omg.CORBA.NO_IMPLEMENT;interface List{ public void clear(); public boolean isEmpty(); public int length(); public原创 2016-05-16 19:23:04 · 440 阅读 · 0 评论 -
数据结构--链表的操作(顺序结构)
package list;interface List{ public void clear(); public boolean isEmpty(); public int length(); public Object get(int i); public void insert(int i,Object x); public void remove(int i); public原创 2016-05-16 19:23:02 · 429 阅读 · 0 评论 -
数据结构--栈的顺序存储
package stackandque;interface Stack{ //public void InitStack(); public void InitStack(SeStack stack); public boolean StackEmpty(SeStack stack); public void PushStack(SeStack stack,Object x); pub原创 2016-05-16 19:22:59 · 380 阅读 · 0 评论 -
数据结构--归并排序
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。我们首先来看看如何将两个有序的数组拼接到另外一个数组里且保持有序;public static void main(String[] args){ guibing g = new guibing(); int a[]={1,4,3,7,2,6,4}; int b[]=原创 2016-05-16 19:22:56 · 379 阅读 · 0 评论 -
数据结构(绪论)
常见的渐进时间复杂度:O(1)原创 2016-05-16 19:22:32 · 247 阅读 · 0 评论 -
算术表达式求值
1、问题描述当一个算术表达式中含有多个运算符,且运算符的优先级不同的情况下,如何才能处理一个算术表达式?????2、思路首先我们要知道表达式分为三类: ①中缀表达式:a+(b-c/d)*e ②前缀表达式+a*-b/cde ③后缀表达式abcd/-e*+ 由于运算符有优先级,所以在计算机中计算一个中缀的表达式非常困难,特别是带括号的更麻烦,而后缀表达式中既无运算符优先又无括号的约束问转载 2017-07-13 16:20:55 · 1324 阅读 · 0 评论