数据结构与算法
文章平均质量分 76
bxk88
这个作者很懒,什么都没留下…
展开
-
冒泡法排序
冒泡排序(Bubble Sort),是一种叫简单的排序方法。 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 原理如下:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点原创 2015-08-18 12:12:39 · 491 阅读 · 0 评论 -
二叉树三种遍历 (Java)
以前学数据结构的时候是用C学的,现在重新复习一下数据结构里用的比较多的二叉树,用Java实现。好啦,废话不多说啦!!我们知道二叉树有三种遍历方式:前序(根左右)、中序(左根右)、后序(左右根)。每种遍历方式其实就是一个递归调用。步骤:1、将数组中的元素赋值给二叉树(通常这个过程叫做建树)。2、然后对于每种遍历方式进行递归调用。具体代码如下:import java.util.Li原创 2015-08-21 10:40:01 · 622 阅读 · 0 评论 -
堆排序及各种排序算法总结
堆排序package com.sort;//不稳定import java.util.Arrays;public class HeapSort { public static void main(String[] args) { int[] a={49,38,65,97,76,13,27,49,78,34,12,64}; int array原创 2015-08-20 15:57:48 · 549 阅读 · 0 评论 -
快速排序(Java)
快速排序(Quick Sort)的排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法确实实用。我们今天来学习下快速排序,一方面是由于自己马上准备找工作啦;另一方面,也算是方便自己以后复习吧。排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。我们平时见到的排序原创 2015-08-19 18:05:59 · 472 阅读 · 0 评论 -
希尔排序
希尔排序(Shell Sort)是插入排序的一种,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。希尔排序是基于插入排序的以下两点性质而提出改进方法的:插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率。但插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位。希尔排序法的基本思想是:原创 2015-08-18 16:51:30 · 496 阅读 · 0 评论 -
二叉树操作Java
/* *使用二叉链表实现二叉树 * */public class BinaryTree { private Node root;//根节点 /** *节点类 *@author Bao Xukai */ class Node { int value; Node leftChild; Node rightChild; Node(int value){原创 2015-09-03 14:25:56 · 595 阅读 · 0 评论 -
折半(二分)插入排序
顾名思义。折半插入排序是插入排序的一种。二分查找插入排序的原理: 直接插入排序的一个变种,区别是:在有序区中查找新元素插入位置时,为了减少元素比较次数提高效率,采用二分查找算法进行插入位置的确定,加快寻找插入点的速度。折半插入排序算法是一种稳定的排序算法,比直接插入算法明显减少了关键字之间比较的次数,因此速度比直接插入排序算法快,但记录移动的次数没有变,所以折半原创 2015-08-18 17:30:00 · 536 阅读 · 0 评论 -
插入排序
有一个有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法。该算法适用于少量数据的排序,是一种稳定的排序方法(就是两个相等的数不会交换位置) ,时间复杂度为O(n^2)。 插入排序分为直接插入排序、折半插入排序(又叫二分插入排序)、链表插入排序、希尔排序(又叫缩小增量排序)。直接插入排序思想:原创 2015-08-18 16:12:10 · 386 阅读 · 0 评论 -
选择排序
选择排序(Selection sort)是一种简单直观的排序算法。基本思路: 选择排序法的第一层循环从起始元素开始选到倒数第二个元素,主要是在每次进入第二层循环之前,先将外层循环的下标赋值给临时变量,接下来进入第二层循环中,如果发现有比这个位置元素更小(或者大)的元素,则将那个更小(或者更大)的元素的下标赋值给临时变量,最后,在退出里层循环后,判断临时变量是否改变,如果临时变原创 2015-08-18 14:58:56 · 364 阅读 · 0 评论