算法
y_chengyong
这个作者很懒,什么都没留下…
展开
-
算法_俄罗斯农夫法的乘法算法
算法简介:俄罗斯农夫法的乘法算法,整数与整数相乘的方法如下:代码如下:import java.util.Scanner;public class Algorithm_1 { /** * 实现俄罗斯农夫法的乘法算法 * * @param args */ public static void main(String[] args)原创 2013-05-24 22:40:15 · 3683 阅读 · 0 评论 -
操作数组的常用算法总结
package com.java;public class BaseAlgorithm { public static void main(String[] args) { int[] arr = { 1, 7, 3, 30, 55, 21, 3, 5, 1, 7, 3 }; System.out.println(findMaxValue(arr)); System.out.p原创 2014-07-01 16:03:24 · 412 阅读 · 0 评论 -
算法应用
算法应用:判断素数,水仙花数,斐波那契数列,百钱买鸡,韩信点兵。原创 2013-10-03 14:55:01 · 806 阅读 · 0 评论 -
单向链表算法
java实现单链表的插入、删除、查找功能。原创 2013-10-03 12:21:00 · 1172 阅读 · 0 评论 -
排序算法_快速排序
排序算法_快速排序原创 2013-10-02 16:32:29 · 789 阅读 · 0 评论 -
查找算法_二分查找
相对于顺序查找,二分查找的要求比较高,它要求待查找的记录必须是有序的,并且必须采用顺序存储,二分查找一般只能应用于静态查找。代码如下:import org.junit.Test;public class BinarySearch { @Test public void test() { int[] arr = { 2, 4, 6, 8, 9,11 }; int res原创 2013-10-02 20:54:14 · 637 阅读 · 0 评论 -
查找算法_顺序查找
顺序查找又称为线性查找,是最基本的查找技术之一,基本思想是:从线性表的一端向另一端逐个将关键字与给定的值进行比较,若相等,则查找成功,给出该记录的位置,若整个表查找完也没找到,则返回查找失败。代码如下:import org.junit.Test;public class ShunxuSearch { @Test public void test() { int[] arr原创 2013-10-02 20:42:03 · 701 阅读 · 0 评论 -
排序算法_归并排序
归并排序是一种借助“归并”进行排序的方法,其实就是将两个或两个以上的有序序列合并成一个有序的序列,主要思想是:将若干个有序序列逐步合并成一个有序的序列。归并排序中最简单的排序时二路归并排序,主要思想是:将若干个有序的序列进行两两归并,直到所有记录全部归并到一个序列。原创 2013-10-02 20:29:36 · 595 阅读 · 0 评论 -
排序算法_希尔排序
希尔排序是对直接插入排序的一种 改进。其基本思想是:先将待排序的记录序列分割成若干个子序列,在子序列中分别进行直接插入操作,待这个序列有序时,再对整个记录序列进行一次直接插入操作即可。原创 2013-10-02 20:26:18 · 538 阅读 · 0 评论 -
排序算法_简单选择排序
主要思想是:每趟排序在当前待排序序列中选出关键码最小的记录,添加到有序序列中,选择排序比较独特的地方是:记录的移动次数少。代码如下:import org.junit.Test;public class SimpleChoiceSort { @Test public void test() { int[] arr = { 3, 6, 4, 2, 7, 1 }; simpl原创 2013-10-02 19:12:09 · 731 阅读 · 0 评论 -
排序算法_堆排序
堆排序是简单选择排序的一种改进,主要是为了减少关键码的比较次数。对于堆的定义,其实就是具有一定性质的二叉树,就是每个节点都小于或等于其左右孩子(小顶堆),或者是每个节点都大于或等于其左右孩子(大顶堆)。算法实现:为了使用堆进行排序,首先需对堆进行初始化和调整。排序的操作过程就是:首先将待排序的记录构造成一个堆,例如大顶堆,然后,选出堆中的最大者,也就是堆顶记录,将它移走,并将剩下的记录再次调整原创 2013-10-02 19:21:30 · 630 阅读 · 0 评论 -
排序算法_直接插入排序
主要思想是:每次将一个待排序的记录按其关键码的大小插入到一个已经排好序的有序序列中,直到全部记录排好序。算法实现:直接插入排序时插入排序中最简单的排序方法,首先要将待排序的记录划分为有序区和无序区,初始时有序区为待排记录的第一个记录,无序区是剩下的待排序记录,然后将无序区的第一个记录插入到有序区的适当位置,重复操作,直到无序区中没有记录。代码如下:import org.junit.原创 2013-10-02 19:56:15 · 601 阅读 · 0 评论 -
排序算法_冒泡排序
一、冒泡排序基本思想:两两比较相邻的关键码,如果反序则交换,直到没有反序的记录为止。原创 2013-10-02 15:50:30 · 750 阅读 · 0 评论 -
使快速排序的最坏时间变为O(nlgn)
一、题目假定元素的值不同,说明如何才能使快速排序在最坏情况下以O(nlgn)时间运行二、思考要改善最坏情况的下运行时间,就要从划分入手,保证即使是最坏情况,也要尽量均衡地划分。因此,使用SELECT找到中值,再以这个中值为主元进行划分三、代码1.以RANDOMIZED-SELECT作为选择中值的算法[cpp] view转载 2013-06-17 19:17:18 · 1497 阅读 · 0 评论 -
找出给定区间内因子最多,并且数最小的数
代码如下:package cn.edu.hdu.test;public class Demo4 { /** * 找出(1,100000)区间内因子最多,并且数最小的数。 * @param args */ public static void main(String[] args) { int[] res = new int[100000];//res[ i ]数组原创 2013-06-03 09:39:09 · 1499 阅读 · 0 评论 -
算法_动态规划_货币兑换
算法简介:有一个货币系统,它有n种货币,它的面值为V1,V2,V3......... ,其中V1 =1。请设计一动态规划算法实现以最小的货币数目兑换面值为m 的钱。代码如下:import java.util.Scanner;public class Algorithm_2 { /** * @param args */ private static fin原创 2013-05-24 22:45:11 · 3574 阅读 · 0 评论 -
趣解并查集
并查集是我暑假从高手那里学到的一招,觉得真是太精妙的设计了。以前我无法解决的一类问题竟然可以用如此简单高效的方法搞定。不分享出来真是对不起party了。(party:我靠,关我嘛事啊?我跟你很熟么?)来看一个实例,杭电1232畅通工程 http://acm.hdu.edu.cn/showproblem.php?pid=1232首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告转载 2013-05-25 14:27:24 · 576 阅读 · 0 评论 -
打印螺旋式方阵
打印螺旋式方阵原创 2014-07-13 21:17:53 · 911 阅读 · 0 评论