ACM
ACM
卿霜寒墨
这个作者很懒,什么都没留下…
展开
-
基本排序算法---插入排序、冒泡排序、快速排序
排序(sorting)是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或记录)的任意序列重新排列成一个按关键字有序的序列。在待排列的文件中,若存在多个关键字相同的记录,经过排序后,这些具有相同关键字的记录之间的相对次序保持不变,该排序方法是稳定的;若具有相同关键字的记录之间的相对次序发生变化,则称这种排序方法是不稳定的。 插入排序 插入排序的基本思想是:每次将一个待排序的记录,按其关键字大小插入前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。 示例: void insert_sor原创 2020-08-04 20:11:29 · 293 阅读 · 0 评论 -
递归算法---汉诺塔问题
程序调用自身的编程技巧称为递归。 一个过程或函数在其定义或说明中又直接或间接地调用自身的一种方法,通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。 汉诺塔问题 参考代码 #include <fstream> #include原创 2020-07-27 21:09:08 · 457 阅读 · 0 评论 -
分治算法---计数问题
分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相对独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。 计数问题 题目描述 给定两个整数a和b,计算出1在a和b之间出现的次数。例如,如果a=1024,b=1032,那么a和b之间的数就是: 1024 1025 1026 1027 1028 1029 1030 1031 1032 则有10个1出现在这些数中。 输入: 输入不会超过500行,每一行有两个整数a和b,a和b之间的范围是0<a,b<100 000原创 2020-07-26 11:52:17 · 517 阅读 · 1 评论