随笔分类 -  经典排序,树算法

Java中的递归以及不死神兔实例(斐波那契数列)
摘要:递归 1、递归次数不要太多,太占内存 2、递归一定要有出口 3、构造方法不能递归使用 三种方法实现实例: package test17_digui; import java.util.Scanner; /* * 题目:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子第三个月后也可以生一对兔子 阅读全文
posted @ 2020-10-06 17:53 kk20_625 阅读(699) 评论(0) 推荐(0)
递归问题1
摘要:经典递归问题 递归需要满足 3 要素: 1、一个父问题可以拆分成若干个子问题,并且若干子问题的结果汇总起来就是父问题的答案。 2、父问题和子问题,解题思路必须完全一致,只是数据规模不同。 3、存在终止条件。 问题在不断拆分的同时,一定要在某个节点终止拆分,得到一个明确的答案。 问题一:假设有 n 个 阅读全文
posted @ 2020-10-06 17:50 kk20_625 阅读(150) 评论(0) 推荐(0)
排序的第二天_快速排序与归并排序
摘要:排序的第二天_快速排序与归并排序 快速排序 原理: 快速排序,说白了就是给基准数据找其正确索引位置的过程.,其实快速排序的本质就是把基准数大的都放在基准数的右边,把比基准数小的放在基准数的左边,这样就找到了该数据在数组中的正确位置. 以后采用递归的方式分别对前半部分和后半部分排序,当前半部分和后半部 阅读全文
posted @ 2020-10-06 16:06 kk20_625 阅读(119) 评论(0) 推荐(0)
二分查找
摘要:java实现一个简单的二分查找 public static int bsearch(int[] a, int n, int value) {//a是查找目标数组,n是数组长度,value是查找的值 int low = 0; int high = n - 1; while (low <= high) 阅读全文
posted @ 2020-10-06 13:00 kk20_625 阅读(119) 评论(0) 推荐(0)
哈希碰撞与生日攻击
摘要:哈希碰撞与生日攻击 一、哈希碰撞是什么? 所谓哈希(hash),就是将不同的输入映射成独一无二的、固定长度的值(又称"哈希值")。它是最常见的软件运算之一。 如果不同的输入得到了同一个哈希值,就发生了"哈希碰撞"(collision)。 举例来说,很多网络服务会使用哈希函数,产生一个 token,标 阅读全文
posted @ 2020-10-06 12:51 kk20_625 阅读(404) 评论(0) 推荐(0)
排序的第一天
摘要:归并排序与希尔排序 希尔排序 package com.m.suan_pai; import java.util.Arrays; public class Test { public static void main(String[] args) { int[] arr = {65, 45, 76, 阅读全文
posted @ 2020-09-21 13:36 kk20_625 阅读(95) 评论(0) 推荐(0)
冒泡排序与选择排序的联系
摘要:冒泡排序与选择排序的联系 冒泡排序的两种写法,第二种写法的变形,就是选择排序。并且第二种写法好理解些。 第一种写法: public static void maoPai() { int[] arr = {13, 11, 15, -11, 99, -10, 0, 22}; for (int i = 0 阅读全文
posted @ 2020-09-17 12:19 kk20_625 阅读(151) 评论(0) 推荐(0)
插入排序与希尔排序的联系
摘要:插入排序与希尔排序的联系 插入排序与希尔排序的关系是什么呢? 插入排序 简化版 //先把arr数组中的2,插入到1,3之间 int[] arr = {1, 3, 5, 7, 2}; //-1插到1前面,必须保证end>0 int[] arr1 = {1, 3, 5, -1}; //数组最后一位元素的 阅读全文
posted @ 2020-09-17 12:04 kk20_625 阅读(133) 评论(0) 推荐(0)