随笔分类 -  算法

摘要:归并排序 先将序列分成左右两部分的单独的一个个序列,然后再将分开好左右两部分单独的序列合并 设两个有序的子序列(相当于输入序列)放在同一序列中相邻的位置上:array[low..m],array[m + 1..high],先将它们合并到一个局部的暂存序列 temp (相当于输出序列)中,待合并完成后 阅读全文
posted @ 2017-04-22 16:37 爱笑的眼睛真美 阅读(201) 评论(0) 推荐(0) 编辑
摘要:堆排序 1.堆排序是一种树形选择排序,在排序过程中,将待排序的记录r[1..n]看成是一棵完全二叉树的顺序存储结构,利用完全二叉树的双亲结点和孩子结点之间的内在关系,在当前无序的序列中选择关键字最大(或者最小的)记录 1.1、先将无序队列,列成二叉树的的样子 1.2、建初堆。从n/2向上取整处开始调 阅读全文
posted @ 2017-04-22 16:30 爱笑的眼睛真美 阅读(856) 评论(0) 推荐(0) 编辑
摘要:简单选择排序 简单选择排序属于选择排序, 选择排序的思想是:每一趟从待排序的记录中选出关键字最小的记录,按顺序放在以排序的记录序列的后面,知道全部排完为止。 1.简单选择排序法是每次循环找出最值,循环结束后将最值调整到合适位置,交换的次数少。 每次找出当前无序队列中的最小的元素与第一个交换位置,再选 阅读全文
posted @ 2017-04-22 16:28 爱笑的眼睛真美 阅读(628) 评论(0) 推荐(0) 编辑
摘要:快速排序 1.快速排序是有冒泡排序改进的来的。在冒泡排序的过程中,只对相邻的两个记录进行比较,因此每次交换两个相邻记录时只能消除一个逆序。如果通过两个不相邻记录进行交换,消除多个逆序,则会大大加快排序的速度。快速排序方法中一次交换可以消除多个逆序 算法方法: 从右侧找第一个比key值小的进行交换,从 阅读全文
posted @ 2017-04-22 16:24 爱笑的眼睛真美 阅读(786) 评论(0) 推荐(0) 编辑
摘要:冒泡排序 冒泡排序属于交换排序、交换排序的思想是:两两比较待排序记录的关键字,一旦发现两个记录不满足次序要求时则进行交换,直到整个序列全部满足要求为止。快速排序是在冒泡排序的基础上进行改进得到的 1.冒泡排序法是两两依次比较,并做交换,交换的次数多。 冒泡法(每次是相邻的两个比较大小,每一轮都会选出 阅读全文
posted @ 2017-04-22 16:21 爱笑的眼睛真美 阅读(359) 评论(0) 推荐(0) 编辑
摘要:希尔排序(缩小增量排序) 希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。 该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基 阅读全文
posted @ 2017-04-22 16:17 爱笑的眼睛真美 阅读(513) 评论(0) 推荐(0) 编辑
摘要:折半插入排序 折半插入排序(binary insertion sort)是对插入排序算法的一种改进,所谓排序算法过程,就是不断的依次将元素插入前面已排好序的序列中。 在将一个新元素插入已排好序的数组的过程中,寻找插入点时,将待插入区域的首元素设置为a[low],末元素设置为a[high],则轮比较时 阅读全文
posted @ 2017-04-22 16:13 爱笑的眼睛真美 阅读(241) 评论(0) 推荐(0) 编辑
摘要:直接插入排序: 在日常生活中,经常碰到这样一类排序问题:把新的数据插入到已经排好的数据列中。 例如:一组从小到大排好顺序的数据列{1,2,3,4,5,6,7,9,10},通常称之为有序列,我们用序号1,2,3,…表示数据的位置,欲把一个新的数据8插入到上述序列中。 完成这个工作的步骤: ①确定数据“ 阅读全文
posted @ 2017-04-22 16:10 爱笑的眼睛真美 阅读(238) 评论(0) 推荐(0) 编辑
摘要:这篇博客对几种常见的排序算法进行归纳总结,在接下来的博客中会依次给出每个排序算法的例子 【由于博客上面进行编辑不太方便,图表都是在电脑上编辑好,上传的图片】 1.排序的分类 2.几种内部排序方法的比较 3.几点结论 3.1当待排序的记录个数较小时,n²和nlogn差别不大,可选用简单的排序方法,而当 阅读全文
posted @ 2017-04-22 16:00 爱笑的眼睛真美 阅读(1012) 评论(0) 推荐(0) 编辑
摘要:思路:其实这道题不是太难,但是这个题太坑了,提交了好多次都不是100,后来才知道,一定一定要在输入数组数据之前先判断一下输进去的n的范围,一定一定要注意,否则就是跟我下面的图片一样的效果了,泪奔~ 问题描述 编写一个程序,读入一组整数,这组整数是按照从小到大的顺序排列的,它们的个数N也是由用户输入的 阅读全文
posted @ 2017-04-04 18:17 爱笑的眼睛真美 阅读(2013) 评论(0) 推荐(0) 编辑
摘要:思路:这道题用HashMap来保存枚举的字串,key值保存字串-value值保存字串所出现的次数; 通过for循环并使用subString()方法枚举所有符合要求的子串maxStr记录出现次数最多的字串, maxValue记录其出现的次数 阅读全文
posted @ 2017-04-04 16:58 爱笑的眼睛真美 阅读(846) 评论(0) 推荐(0) 编辑
摘要:思路:根据提示的内容,我们可以得到c[i][j] += a[i][k]*b[k][j],k>=0&&k<s PS:这道题本身不难,但是当我定义A[m][s] B[s][n] c[m][n] 这样的大小时,总有几个测试数据过不去,只能得42分,后来我将三个数组大小都设定了为200*200,全部数据都通 阅读全文
posted @ 2017-04-04 15:23 爱笑的眼睛真美 阅读(535) 评论(0) 推荐(0) 编辑
摘要:1、标题:算年龄 英国数学家德摩根出生于19世纪初叶(即18xx年)。他年少时便很有才华。一次有人问他的年龄,他回答说:“到了x的平方那年,我刚好是x岁”。请你计算一下,德摩根到底出生在哪一年。题中的年龄指的是周岁。 请填写表示他出生年份的四位数字,不要填写任何多余内容。 思路: 设当前是x(1=< 阅读全文
posted @ 2017-04-02 08:24 爱笑的眼睛真美 阅读(2474) 评论(0) 推荐(1) 编辑
摘要:附上百度文库的链接:http://wenku.baidu.com/view/afb78d36b42acfc789eb172ded630b1c59ee9bf7 阅读全文
posted @ 2017-03-25 20:02 爱笑的眼睛真美 阅读(1069) 评论(0) 推荐(0) 编辑
摘要:nums[i][j] 存的是i位数的时候,首位数字是j的K好数的数目,i从1位开始的结果,去算2位时的结果,去算3位时的结果。。。最后得到l位的结果。K进制只是一个范围。 阅读全文
posted @ 2017-03-22 17:35 爱笑的眼睛真美 阅读(838) 评论(1) 推荐(1) 编辑
摘要:1 import java.util.Scanner; 2 public class _1区间K大数查询 { 3 public static void main(String[] args) { 4 Scanner scanner = new Scanner(System.in); 5 int n= scanner.nextInt(); 6 ... 阅读全文
posted @ 2017-03-22 15:09 爱笑的眼睛真美 阅读(341) 评论(0) 推荐(0) 编辑
摘要:解题思路: 1. n是奇数,那就最大的三个数相乘2. n是偶数,得分两种情况了, ①如果n不是3的倍数,那就s=n*(n-1)*(n-3) n与n-2同为偶数,故排除一个n-2; ②n是3的倍数,s=(n-1)*(n-2)*(n-3),n与n-2同为偶数,排除n-2,但n与n-3均有3这个公约数,得 阅读全文
posted @ 2017-03-22 15:07 爱笑的眼睛真美 阅读(263) 评论(0) 推荐(0) 编辑
摘要:1 public class _8回文数 { 2 //两种方法都可以 3 // public static void main(String[] args) { 4 // String zheng =""; 5 // for (int i = 1000; i <= 9999; i++) { 6 // zheng = Strin... 阅读全文
posted @ 2017-03-20 11:22 爱笑的眼睛真美 阅读(429) 评论(0) 推荐(0) 编辑
摘要:问题描述 对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是: 00000 00001 00010 00011 00100 请按从小到大的顺序输出这32种01串。 对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是: 00000 000 阅读全文
posted @ 2017-03-19 10:17 爱笑的眼睛真美 阅读(993) 评论(0) 推荐(1) 编辑
摘要:问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。 当n比较大时,Fn也非常大,现在我们想知道, 阅读全文
posted @ 2017-03-18 22:02 爱笑的眼睛真美 阅读(519) 评论(0) 推荐(0) 编辑

more_horiz
keyboard_arrow_up light_mode palette
选择主题
点击右上角即可分享
微信分享提示