![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构和算法
文章平均质量分 66
A_scholar
这个作者很懒,什么都没留下…
展开
-
Java中的经典算法之冒泡排序(Bubble Sort)
原理:比较两个相邻的元素,将值大的元素交换至右端。思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复第一趟步骤,直至全部排序完成。第一趟比较完成后,最后一个数一定是数组中最大的一个数,所以第二趟比较的时候最后一个数不参与比...原创 2018-10-28 11:38:17 · 356 阅读 · 0 评论 -
基数排序
1.不使用栈package com.sxt.b;import java.util.Arrays;/** * 基数排序 * @author 13631 * */public class RadixSort { public static void main(String[] args) { int[] arr =new int[] {23,6,189,45,9,287,...原创 2018-11-01 16:28:49 · 275 阅读 · 0 评论 -
二叉搜索树(二叉排列树或二叉查找树)
1、二叉排序树性质:1、就是若它的左子树不空,则左子树上所有节点的值均小于它的根节点的值;2、若它的右子树不空,则右子树上所有节点的值均大于其根节点的值。3、换句话说就是:任何节点的键值一定大于其左子树中的每一个节点的键值,并小于其右子树中的每一个节点的键值。2、二叉排序树查找要在二叉树中找出查找最大最小元素是极简单的事情,从根节点一直往左走,直到无路可走就可得到最小值;从根节点一直往右...原创 2018-10-30 23:37:52 · 337 阅读 · 0 评论 -
哈夫曼树的实现
package org.sxt.tree;public class Node implements Comparable<Node>{ int value; Node left; Node right; public Node(int value) { this.value=value; } public String toString() { retu...原创 2018-10-30 18:07:24 · 170 阅读 · 0 评论 -
线索二叉树
#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;typedef char ElempType;//线索存储标志位//Link(0) :表示左右孩子的指针//Thread(1):表示只想前驱节点的线索typedef enum {Link,Thread} PointerTag;//定义节点typedef struct BiThrN...原创 2018-10-30 17:18:11 · 124 阅读 · 0 评论 -
java实现队列
package com.sxt.queue;public class MyQueue { int[] elements; public MyQueue() { elements=new int[0]; } //入队 public void add(int element) { // 创建一个新的数组 int[] newArr = new int[element...原创 2018-10-31 23:09:52 · 175 阅读 · 0 评论 -
java实现栈
package com.txt.stack;public class MyStack { //栈的底层我们使用数组来存储数据 private int[] elements; public MyStack() { elements = new int[0]; } //压入元素 public void push(int element) { // 创建一个新的数组 ...原创 2018-10-31 23:08:49 · 138 阅读 · 0 评论 -
哈希表,哈希算法,实现存储数据
package demo13;public class StuInfo { private int age; private int count; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public int getCount() { ...原创 2018-10-31 23:03:48 · 1994 阅读 · 0 评论 -
无向图的实现
package com.sxt.graph;/*节点类 * */public class Vertex { private String value; public boolean visited; public Vertex(String value) { this.value = value; } public String getValue() { retu...原创 2018-10-31 19:48:12 · 328 阅读 · 0 评论 -
java中的堆排序算法
package org.sxt.e;import java.util.Arrays;/*大顶堆排序,从最后一个节点的父节点((arr.length-1)/2)大于子节点,往前推,最终把 * 最大元素放到了第一位,将第一位与最后一位交换,就把最大的放到了最后; * 这时把“剩下的元素”在进行上述过程就把第二大的放到了倒数第二位,以此类推 * 推到头,这时二叉树已经按层次把元素...原创 2018-10-29 17:52:14 · 314 阅读 · 0 评论 -
java中二叉树的建立方法,及基本操作
//创建节点package com.txt.c;public class TreeNode { //结点的权 int value; //左儿子 TreeNode LeftNode; //右儿子 TreeNode RightNode; public TreeNode(int value) { this.value = value; } public TreeNode(in...原创 2018-10-29 17:42:36 · 1137 阅读 · 0 评论 -
二分查找的迭代算法和递归算法
package org.sxt.c;/* * 二分查找 * 迭代方法 * 递归方法 * */public class BinarySearch { public static int binarySearch0(int[] array,int key) { int low=0; int high=array.length-1; while(low<=high)...原创 2018-10-28 23:12:04 · 1333 阅读 · 0 评论 -
各种排序算法大合集
各种算法的比较:快速排序:希尔(Shell)排序:要点希尔(Shell)排序又称为缩小增量排序,它是一种插入排序。它是直接插入排序算法的一种威力加强版。希尔排序的基本思想是:把记录按步长 gap 分组,对每组记录采用直接插入排序方法进行排序。随着步长逐渐减小,所分成的组包含的记录越来越多,当步长的值减小到 1 时,整个数据合成为一组,构成一组有序记录,则完成排序。我们来通过演示...原创 2018-10-28 20:16:43 · 543 阅读 · 0 评论