摘要: 归并排序 (merge sort) 是一类与插入排序、交换排序、选择排序不同的另一种排序方法。归并的含义是将两个或两个以上的有序表合并成一个新的有序表。归并排序有多路归并排序、两路归并排序 , 可用于内排序,也可以用于外排序。这里仅对内排序的两路归并方法进行讨论。 一、两路归并排序算法思路 分而治之 阅读全文
posted @ 2018-02-01 21:44 henu小白 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 快速排序的原理:选择一个关键值作为基准值。比基准值小的都在左边序列(一般是无序的),比基准值大的都在右边(一般是无序的)。一般选择序列的第一个元素。 一次循环:从后往前比较,用基准值和最后一个值比较,如果比基准值小的交换位置,如果没有继续比较下一个,直到找到第一个比基准值小的值才交换。找到这个值之后 阅读全文
posted @ 2018-02-01 21:11 henu小白 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 冒泡排序、简单插入排序、选择排序是最简单的三种排序算法,时间复杂度都是O(n2),下面介绍一种低于O(n2)的排序算法-希尔排序 插入排序算法的原理就是取用依次递减的增量序列进行多次插入排序,最终使其基本有序,然后再通过增量为1的插入排序使其最终有序。 设计技巧就是使其在前几轮的排序中基本有序,从而 阅读全文
posted @ 2018-02-01 17:33 henu小白 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 【问题描述】 123321是一个非常特殊的数,它从左边读和从右边读是一样的。 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。 输入格式 输入一行,包含一个正整数n。 输出格式 按从小到大的顺序输出满足条件的整数,每个整数占一行。 样例输入 52 样例输出 8999 阅读全文
posted @ 2018-02-01 00:02 henu小白 阅读(139) 评论(0) 推荐(0) 编辑