算法
Z_DZ
这个作者很懒,什么都没留下…
展开
-
Java实现选择排序
描述:选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。代码: public static void selectSort(int[] keys){ for(int i = 0 ; i < ...原创 2018-09-11 20:25:45 · 129 阅读 · 0 评论 -
Java用for循环实现斐波那契数列
public int getNum(int n) { //返回-1时表示参数不合法 if( n <= 0 ) { return -1; } if( n <= 2 ) { return 1; } int pre_1 = 1; int pre_2 = 1; int n_value = 0; ...原创 2018-07-09 11:26:38 · 5543 阅读 · 0 评论 -
Java实现二分查找
描述:适用于 有序的 顺序表代码: public static int binarySearch(Integer[] srcArray, int des) { //定义初始最小、最大索引 int low = 0; int high = srcArray.length - 1; //确保不会出现重复查找,越界 ...原创 2018-09-11 20:16:06 · 89 阅读 · 0 评论 -
Java实现快速排序
快速排序和冒泡排序都属于交换排序,算法描述:在数据序列中找一个参照物,从数据序列两端开始搜索,比参照物小的,放在参照物前边,比参照物小的放在参照物后边。代码:package per.data.paixu;public class QuickSort { public static void main(String[] args) { // TODO Auto-gene...原创 2018-09-06 19:59:56 · 202 阅读 · 0 评论 -
Java实现冒泡排序
冒泡排序算法描述:比较相邻两个元素大小,如果反序,则置换。代码:boolean flag = true;int temp = 0;int k = 0;for(int i = array.length - 1 ; ( i > 0 ) && flag; i--){ flag = false; for( k = 0 ; k < i ; k++){...原创 2018-09-05 20:49:07 · 232 阅读 · 0 评论 -
动态规划思想的理解……简单直接,易于理解(来源:知乎)
引言当你企图使用计算机解决一个算法问题时,你其实就是在思考如何将这个问题表示为状态(用哪些变量存储哪些数据)以及如何在状态中转移(怎样根据一些变量计算出另一些变量)。所以所谓的空间复杂度就是为了支持你的计算所必需存储的状态最多有多少,所谓时间复杂度就是从初始状态到达最终状态中间需要多少步。总结一个问题是该用递推、贪心、搜索还是动态规划,完全是由这个问题本身阶段间状态的转移方式决定...原创 2019-03-25 17:51:33 · 739 阅读 · 0 评论 -
动态规划——硬币找零问题(附Java代码)
问题描述现在有3种硬币分别为:1元,5元,10元,现在给你63元,让你全部换成硬币,求出最小硬币数量,也就是说,怎么用最少的硬币数凑成63元。分析问题解决这个问题,我们可以将这个大问题分成若干个小问题,自下而上解决问题。1元对应的最小硬币数是12元对应的最小硬币数是23元对应的最小硬币数是34元对应的最小硬币数是4……63元对应的最小硬币数是XXX假设...原创 2019-03-26 10:19:19 · 2347 阅读 · 2 评论