算法与数据结构
文章平均质量分 76
sir_TI
成长吧,骚年!
展开
-
选择排序,插入排序算法
利用Java实现选择排序import java.util.Random;/** *算法思想:每次在数组中寻找最小的元素,使其与当前未经过排序的第一个元素进行交换,直至所有的元素都有序。 *算法需要比较的次数:n(n-1)/2,交换的总次数为n *算法的效率分析:最坏时间复杂度 O(n^2) 平均时间复杂度O(n^2) 最好情况O(n^2) 空间复杂度O(1) *稳定性:否 *算法特...原创 2018-03-26 22:31:33 · 133 阅读 · 0 评论 -
动态规划学习(后期也会补充)
动态规划总结(Dynamic Programming)1.为什么要有动态规划?2.什么是动态规划? 是一种分阶段求解策略,简答的总结就是大事化小,小事化了。3.动态规划具体的执行步骤是什么? 动态规划包括三个部分:最优子结构、边界和状态转移方程。 4.动态规划的应用 1)青蛙跳台阶问题:一只青蛙一次能跳一个台阶,也可以一次跳两个台阶,问:跳上n个台阶...原创 2018-09-04 10:04:55 · 214 阅读 · 0 评论 -
斐波那契数列
本文主旨旨在分享斐波那契数列数列的多种解法。主要内容先开始bb一下。首先为什么要写这篇文章呐?小学生么,不是一个简单的递归就能解决的事情么,对呀,博主在这里主要是为了开拓思维。呸,是某些编程网站上面时间复杂度达不到要求好吧,可怜我脆弱的内心,好不容易知道了递归的解法,却告诉我不行?噢,好吧,您是老大,为了求您赏碗饭吃,我改好吧,直到让你满意为止(心里...),好了,开始正文的内容吧。...原创 2018-08-29 10:33:45 · 2938 阅读 · 1 评论 -
Java实现单链表常见操作
class Node{ private int data; private Node next; private static Node head=null; public Node(int data){ this.data=data; } //增加结点 public static void addNode(int d){ ...原创 2018-05-18 15:06:38 · 221 阅读 · 0 评论 -
优先队列
一、定义 在优先队列中,元素被赋予优先级。当访问优先队列的元素时,具有最高优先级的元素最先被访问。此种数据结构支持两种操作:删除最大元素和插入元素。二、为什么要使用优先队列这种数据结构? 若总数据量太大,无法排序。需求是你需要从10亿格尔元素中选择最大的十个,排序是不现实的。但是有了优先队列,那我们只需要用一个能存储十个元素的队列即可。每次比较之后都是删除较小的元素,使得队列中的元素始...原创 2018-04-22 17:38:03 · 157 阅读 · 0 评论 -
快速排序及其改进
public class QucikSort { public static void sort(Comparable []a,int low,int high){ if(low<high){ int pivotpos=partition(a,low,high); sort(a,0,pivotpos-1); ...原创 2018-03-29 15:20:49 · 354 阅读 · 0 评论 -
归并排序的实现方式
* 算法思想:将两个有序的数组归并成一个更大的有序数组。 * */public class Merge { private static Comparable []b;//创建辅助数组 public static void sort(Comparable []a){ b=new Comparable[a.length]; sort(a,0,a....原创 2018-03-28 10:36:53 · 161 阅读 · 0 评论 -
希尔排序
/**算法思想:基于插入排序的思想,在相隔每个增量元素都是有序的。又称缩小增量插入排序,先按一定的间隔(增量)将待排序序列分组,每组内进行直接插入排序,然后缩小间隔,再次在各分组内部进行直接插入排序,后面逐步缩小间隔,最后一直将间隔缩小到1,进行一次直接插入排序即完成。算法的时间效率:有很大的不确定性,但是随着数组规模的增大,算法的效率越好(增量选择)学习建议:模拟算法的轨迹 * */...原创 2018-03-27 09:49:41 · 204 阅读 · 0 评论 -
算法修炼------快速排序的递归与非递归
总述记得在看《大话数据结构》的时候,author说不会快速排序,那么面试的时候很有可能会挂,实际上本人在第一次面试的时候确实被问到了快速排序算法,当时凭借着微弱的记忆,将这些内容和面试官说了一遍,后面看到面经里面面试者需要手写快速排序,觉得应该重温一下这个伟大的算法了...学习方法本人在学习的时候,感觉也是花了一些功夫,觉得最好的方法就是自己在草稿纸上面进行推导,写出一个数组,然后利用...原创 2019-03-09 17:42:53 · 362 阅读 · 0 评论