- 博客(26)
- 收藏
- 关注
原创 java快速排序
public class QuickSort { public static void quickSort(int arr[] , int n) { quickSort(arr , 0 , n -1 ) ; } private static void quickSort(int arr[] , int l , int r) {...
2019-03-28 16:03:20
192
转载 八大算法思想
八大算法思想八大算法:枚举、递推、递归、分治、贪心、试探法、动态迭代和模拟算法思想。一、枚举算法思想(暴力算法) 将问题的所有可能答案一一列举,根据判断条件判断此答案是否合适,一般用循环实现。 经典运用:百钱买百鸡、填写运算符二、递推算法思想 1.顺推法:从已知条件出发,逐步推算出要解决问题的方法。 2.逆...
2019-03-28 08:29:49
512
原创 the realize of mergeSort
public class MergeSort { public static void mergeSort(int arr[] , int n) { mergeSort(arr , 0 , n) ; } private static void mergeSort(int arr[] ,int l , int r) { ...
2019-03-27 22:36:52
234
原创 无题
重要的还是需要打好基础,不要上来就做很难的题目,关键还是需要从基础做起,基础打好了才有更大的提升空间。像迭代与递归的实现,真正的理解递归思想,其实还是很重要的。像数据结构中的树的实现,像汉诺塔的实现,都用到了递归思想的实现。其次就是java中的引用的理解,像其他语言也有,关键还是对一门语言的理解,这样才能更加深入的去实现,有些时候,你数据结构的不会,...
2019-03-27 11:31:41
144
原创 二分查找之C++迭代、递归实现
#include<iostream>#include<ctime>#include<cassert>using namespace std ;//迭代版的binarySearchint binarySearch(int arr[] , int n , int target){ int l = 0 , r = n - 1 ; //在[...
2019-03-27 11:22:45
451
原创 插入排序之C++
成功的失败经历-----插入排序#include<iostream>#include<algorithm>#include<SortTestHelper.h>using namespace std ;void insertSort(int a[] , int n){ for(int i = 1 ; i < n ; i ++)...
2019-03-26 17:07:01
133
原创 选择排序之C++
选择排序是将数组中的最小值不断地前移,从数组0往后进行与最小值的交换。#include<iostream>#include<algorithm>using namespace std ;int myMin(int arr[] , int n , int j){ int min = arr[j] ; int index = j...
2019-03-25 19:25:20
165
原创 画风一改之C++冒泡排序
#include<iostream>using namespace std ;int main(){ int a[] = {5 ,6,7,1,2,9,3,4} ; for(int i = 0 ; i < 8 ;i ++) { for(int j = 0 ;j < 7 ; j ++) { ...
2019-03-25 19:21:57
158
原创 The use of Collections in java
/*** Collection是集合类的父类,* Collections是集合类的一个工具类,* 所以对于Collections的了解还是很有必要的*/import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;public class Test { public...
2019-03-24 09:37:42
137
原创 java数据结构之trie
import java.util.TreeMap;/*** 相对于数组实现的堆和数组实现的并查集运用到了集合的索引,字典树Trie的使用是* 多叉树,很有意思。关键的不是如何书写。而是懂得算法的的思想。怎样的代码实现其实* 是另外一回事。**/public class Trie { private class Node{ public ...
2019-03-23 20:48:55
376
原创 java数据结构之并查集
希望大家通过本次的学习后,能够加深对数组的理解和使用import java.util.Random;public class UnionFind { public static int count = 0 ; private int[] parent ; private int[] rank ; public UnionFind(int siz...
2019-03-23 17:28:56
161
原创 干货满满之树映射
public class TreeMap <K extends Comparable<K> , V>{ private class Node { public K key ; public V value ; public Node left , right; pu...
2019-03-22 13:08:57
437
原创 java 数据结构之链表字典
public class Map<K , V> { private class Node { public K key ; public V value ; public Node next ; public Node(K key , V value , Node next) {...
2019-03-22 09:12:06
394
原创 java数据结构之基于链表实现的集合
/*** 基于链表实现的集合,* 链表的实现可以参照已经写过的前面的链表知识*/public class LinkedSet<T> { private MyLinkedList<T> list ; public LinkedSet() { list = new MyLinkedList<>() ; ...
2019-03-21 21:31:41
551
原创 java数据结构之集合
public class Set<T extends Comparable<T>> { private BST<T> bst ; public Set() { bst = new BST<>() ; } public boolean isEmpty() { ret...
2019-03-21 21:15:24
139
原创 (满满的干货)java数据结构之二分搜索树
/*** 写关于树的操作时还是应该多用递归,如树的遍历用递归写就方便的多* 用循环则需要使用栈,而同理对于删除操作则需要删除下一个节点时如何* 将将上一个节点的下一个节点为空。* 你可能会想为什么不能直接将当前节点为空,因为这只是使得当前的节点为空,* 而原本生成的对象仍然存在。所以用递归可以将其下一个节点找到赋给当前节点。*//** 相比于链式结构树结构更难于理解...
2019-03-21 20:16:49
196
原创 java数据结构之数组栈
/**** 根据数组线性表改编而来的数组栈* 关于线性表如何实现的可以参照前面线性表的实现*/public class Stack<T> { private Array<T> array ; public Stack() { array = new Array<T>() ; } pu...
2019-03-20 18:15:45
165
原创 java数据结构之数组队列
/*** 这是通过封装java数组实现的线性表实现的队列,感兴趣的可以看上一篇文章*/public class Queue<T> { private Array<T> array ; public Queue() { array = new Array<T>() ; } pu...
2019-03-20 17:59:38
213
原创 java优先队列的实现
//以堆作为底层数据结构实现,对的实现看上一篇文章public class PriorityQueue<E extends Comparable<E>> { private MaxHeap maxHeap ; public PriorityQueue() { maxHeap = new MaxHeap() ; }...
2019-03-20 12:56:39
1744
原创 java堆的实现
/** 自己实现的ArrayList可以通过在两个data元素集合是实现swap的操作,* 而如果调用已经实现的ArrayList则可以使用工具类Collections.swap() ;*//*** 堆的在下标设置时使用shiftUp时使用index=0 ;这是跟数组有关,* 便于统一操作*/import java.util.ArrayList;import jav...
2019-03-20 12:35:21
757
原创 数组与堆
/*** 数据结构与算法果然还是要跟进度来,* 不要想当然,今天先写数组的前序后序中序遍历* 也就是为了后面堆的实现做准备*堆排序*/public class BinaryTree { int array[] = {1 , 2, 9 , 3 , 6 ,10 , 13 , 4 , 5 ,7 ,8 ,11,12,14,15} ; public...
2019-03-19 23:50:30
437
原创 java数据结构之双端队列
//其实数据结构我们首先要去理解其原理,然后通过实践来验证自己的想法,是一个很不错的选择//如果你们看到了我前期链表的设计//再来理解双端队列其实也是很简单的,/**主要是要注意到,在Node初始化时就对Node的prev或next进行了指定*这也是理解双端队列的关键*/public class DQueue<E> { public DQueue()...
2019-03-18 13:01:38
613
原创 java数据结构之队列(使用头尾节点实现)
/*** 对于链表的实现,如果只对连标头进行操作,则是O(1)的时间复杂度* 如果对链表尾进行操作则是O(n)的时间复杂度*而在用数组实现的队列同样出现了此类问题,所以解决这类问题的方式是使用循环队列*而对于链表而言则是使用尾指针*出于性能的考虑*/public class LinkedQueue2<E> { //对队列进行操作时不再使用虚拟头结点...
2019-03-17 16:47:34
777
原创 java数据结构之链栈
//如果成功实现链表之后,那么对队列和栈的实现都很简单了//可以自己在从底层实现一个栈或队列,也可以以原有的线性表作为底层数据结构//来进行实现public class LinkedListStack<E> { private MyLinkedList<E> list ; public LinkedListStack() { ...
2019-03-17 15:08:28
202
原创 java数据结构之队列
//如果成功实现链表之后,那么对队列和栈的实现都很简单了//可以自己在从底层实现一个栈或队列,也可以以原有的线性表作为底层数据结构//来进行实现public class LinkedListQueue<E> { private MyLinkedList<E> list ; public LinkedListQueue() { ...
2019-03-17 15:07:21
436
原创 java数据结构(线性表之链表)
/**** 1.听别人讲的时候发现很容易,但其实是很不容易,* 其中涉及了很多的知识,像引用,引用的理解是非常重要的* 可以说不能理解引用无法学习java的数据结构。** 2.同时对于java的数据结构的递归与迭代的两种方法,* 分别给予书写** 3.所以就是说细节很重要,有时候就是因为很多细节上的不理解导致了* 无法将知识点连贯起来** 4...
2019-03-17 11:43:41
225
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人