算法
Java3y
公众号:Java3y。
展开
-
冒泡排序就这么简单
冒泡排序就这么简单在我大一的时候自学c语言和数据结构,我当时就接触到了冒泡排序(当时使用的是C语言编写的)。现在大三了,想要在暑假找到一份实习的工作,又要回顾一下数据结构与算法的知识点了。排序对我们来说是一点也不陌生了,当你打王者荣耀的时候也会有段位之分,当你打Dota的时候也有天梯分。从高往下数,这个排名是有规律的,就是一种排序。我最开始接触的就是冒泡排序,所以这篇博文主要讲的是冒泡...原创 2018-03-17 09:36:53 · 10700 阅读 · 4 评论 -
Java实现单向链表基本功能
一、前言最近在回顾数据结构与算法,有部分的算法题用到了栈的思想,说起栈又不得不说链表了。数组和链表都是线性存储结构的基础,栈和队列都是线性存储结构的应用~本文主要讲解单链表的基础知识点,做一个简单的入门~如果有错的地方请指正二、回顾与知新说起链表,我们先提一下数组吧,跟数组比较一下就很理解链表这种存储结构了。2.1回顾数组数组我们无论是C、Java都会学过:数...原创 2018-03-28 17:01:23 · 533 阅读 · 0 评论 -
八大基础排序总结
前言大概花了一周的时间把八大基础排序过了一遍,这篇博文主要是用来回顾一下八大基础排序的要点和一些总结~回顾:冒泡排序就这么简单选择排序就这么简单插入排序就这么简单快速排序就这么简单归并排序就这么简单堆排序就这么简单希尔排序就这么简单基数排序就这么简单总的来说:快速排序是用得比较广泛的一个排序,也是经常出现的一个排序,应该重点掌握~二、八大排序总结2...原创 2018-03-27 10:40:35 · 1456 阅读 · 0 评论 -
插入排序就这么简单
插入排序就这么简单从上面已经讲解了冒泡和选择排序了,本章主要讲解的是插入排序,希望大家看完能够理解并手写出插入排序的代码,然后就通过面试了!如果我写得有错误的地方也请大家在评论下指出。插入排序介绍来源百度百科: 插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序...原创 2018-03-21 21:41:50 · 447 阅读 · 0 评论 -
基数排序就这么简单
一、基数排序(桶排序)介绍来源360百科: 基数排序(radix sort)属于”分配式排序”(distribution sort),又称”桶子法”(bucket sort)或bin sort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些”桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序,其时间复杂度为O (nlog(r)m),其中r为所采取的基数,而m为堆数,在...原创 2018-03-26 12:53:06 · 524 阅读 · 0 评论 -
快速排序就这么简单
快速排序就这么简单从前面已经讲解了冒泡排序、选择排序、插入排序了,本章主要讲解的是快速排序,希望大家看完能够理解并手写出快速排序的代码,然后就通过面试了!如果我写得有错误的地方也请大家在评论下指出。快速排序的介绍来源百度百科: 快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一...原创 2018-03-21 15:57:33 · 927 阅读 · 0 评论 -
[2]十道算法题【Java实现】
前言清明不小心就拖了两天没更了~~这是十道算法题的第二篇了~上一篇回顾:十道简单算法题最近在回顾以前使用C写过的数据结构和算法的东西,发现自己的算法和数据结构是真的薄弱,现在用Java改写一下,重温一下。只能说慢慢积累吧~下面的题目难度都是简单的,算法的大佬可直接忽略这篇文章了~入门或者算法薄弱的同学可参考一下~很多与排序相关的小算法(合并数组、获取数字每位值的和),我都没有写...原创 2018-04-07 21:02:37 · 545 阅读 · 1 评论 -
希尔排序就这么简单
一、希尔排序介绍来源百度百科: 希尔排序(Shell’s Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因D.L.Shell于1959年提出而得名。从上面我们很容易看出来,它是插入排序的高级版回顾一下插入排序:将数据插入到已有序的数列中 ...原创 2018-03-25 10:10:44 · 660 阅读 · 0 评论 -
堆排序就这么简单
一、堆排序介绍来源百度百科: 堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。堆分为大根堆和小根堆,是完全二叉树。前面我已经有二叉树入门的文章了,当时讲解的是二叉查找树,那上面所说的完全二叉树是怎么样的一种二叉树呢??还有满二叉树又是怎么的一种二叉树呢??甚至还有完满二叉树??完全...原创 2018-03-24 16:59:13 · 644 阅读 · 0 评论 -
十道简单算法题
前言最近在回顾以前使用C写过的数据结构和算法的东西,发现自己的算法和数据结构是真的薄弱,现在用Java改写一下,重温一下。只能说慢慢积累吧~下面的题目难度都是简单的,算法的大佬可直接忽略这篇文章了~入门或者算法薄弱的同学可参考一下~很多与排序相关的小算法(合并数组、获取数字每位值的和),我都没有写下来了,因为只要会了归并排序(合并数组),会了桶排序(获取数字每位的值),这些都不成问题了...原创 2018-03-30 10:18:21 · 1201 阅读 · 0 评论 -
递归就这么简单
递归介绍本来预算此章节是继续写快速排序的,然而编写快速排序往往是递归来写的,并且递归可能不是那么好理解,于是就有了这篇文章。在上面提到了递归这么一个词,递归在程序语言中简单的理解是:方法自己调用自己递归其实和循环是非常像的,循环都可以改写成递归,递归未必能改写成循环,这是一个充分不必要的条件。那么,有了循环,为什么还要用递归呢??在某些情况下(费波纳切数列,汉诺塔),使用递归会比...原创 2018-03-20 16:33:14 · 523 阅读 · 0 评论 -
归并排序就这么简单
归并排序就这么简单从前面已经讲解了冒泡排序、选择排序、插入排序,快速排序了,本章主要讲解的是归并排序,希望大家看完能够理解并手写出归并排序快速排序的代码,然后就通过面试了!如果我写得有错误的地方也请大家在评论下指出。归并排序的介绍来源百度百科: 归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)...原创 2018-03-23 17:24:19 · 482 阅读 · 0 评论 -
选择排序就这么简单
选择排序就这么简单从上一篇已经讲解了冒泡排序了,本章主要讲解的是选择排序,希望大家看完能够理解并手写出选择排序的代码,然后就通过面试了!如果我写得有错误的地方也请大家在评论下指出。选择排序介绍和稳定性说明来源百度百科: 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始(末...原创 2018-03-18 20:42:07 · 401 阅读 · 0 评论 -
【Java实现】栈和队列就是这么简单
一、前言上一篇已经讲过了链表【Java实现单向链表】了,它跟数组都是线性结构的基础,本文主要讲解线性结构的应用:栈和队列如果写错的地方希望大家能够多多体谅并指正哦,如果有更好的理解的方式也希望能够在评论下留言,让大家学习学习~二、数据结构【栈】就是这么简单2.1数据结构【栈】介绍数据结构的栈长的是这个样子:其实非常好理解,我们将栈可以看成一个箱子往箱子里面...原创 2018-03-29 16:42:16 · 506 阅读 · 0 评论