
经典算法&数据结构
烤鸡翅我要六个
萨瓦迪卡
展开
-
算法之 —— 快速排序(java)
快速排序是什么快排算法是基于分治策略的排序算法,具有高效特点。快速排序过程能通过递归进行,最后使得数组变成有序的序列,我分享的是从数组的两头开始的。废话不多说,直接预备备!(先奉上代码,后面有举例详解步骤。详细步骤配合注释如果看不懂,请来砍我!)大致思路,一开始从双端向中间扫描,基准值作为轴,把数组分成两部分,左边的都小于基准值,右边的都大于基准值,递归快排代码(java) ...原创 2019-08-14 12:02:38 · 272 阅读 · 0 评论 -
算法之——归并排序(java)
一.什么是归并排序归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。(依然推荐一个b站的视频 av18980253 时长一分半钟,内容是图解排序过程,可以对归并排序大致了解)建议先看视频对排序有一个大致了解,然后跑一跑代...原创 2019-08-20 11:29:44 · 244 阅读 · 0 评论 -
算法之——冒泡排序(java)
代码在这里,比较简单。讲解的话推荐我在b站看到的的一个视频,讲的不错 (av9926347)package test;public class Bubble_sort { public static void main(String[] args) { // TODO Auto-generated method stub int a[]= {8, 1, 9, 7, 3, ...原创 2019-08-17 21:53:17 · 169 阅读 · 0 评论 -
算法之——堆排序(java)
启发于b站的一个视频,推荐大家去看看,讲的很清晰(av47196993 阿婆主:正月点灯笼)完整的代码在本文末一.堆是什么堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆二.完全二叉树如果二叉树的深度为k,则除第k层外其余所有层节点的度都为2,且叶子节点从左到右依次存在。只有这两种情况我们用数组来存储树,假设父节点的下标为i...原创 2019-08-18 13:10:06 · 245 阅读 · 0 评论 -
算法之——插入排序
一.什么是插入排序直接插入排序(Straight Insertion Sort)的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表。开始时有序表中只包含1个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,将它插入到有序表中的适当位置,使之成为新的有序表,重复n-1次可完成排序过程。简单地说,就是把数组划分成两部分,一部分已经有序(在最开始的时候,就把第一...原创 2019-08-27 10:12:28 · 158 阅读 · 0 评论