雅乐网

计算机技术、学习成长

计算机 » 算法

归并排序

归并排序

归并排序是分治思想的典型应用。它的基本步骤有3步: 1. 划分。将要排序的数组分为两部分。 2. 递归求解。分别递归使用归并排序将两部分排序。 3. 合并。将两个有序的序列合并为一个有序的序列。 将序列分为两部分用时O(1),而对子序列进行

冒泡排序:思路、详解、C语言实现

冒泡排序:思路、详解、C语言实现

冒泡排序是一种很常见的简单排序。它依次扫描要排序的序列,比较两个相邻的元素,如果逆序就交换位置。 每次经过扫描一趟后,未排序部分最大的元素就“冒泡”到了最上面。 函数接口 void bubble_sort1(int *a, int low,

详解二分查找算法

详解二分查找算法

二分查找是一个用于有序数组查找的常用算法。它的基本思想非常简单,以至于我们都会自认为已经掌握。但是,纸上得来终觉浅,当实际动手的时候,还是会发现许多问题。下面雅乐网整理了一下二分查找算法的实现。 思想 先看看维基百科的说法: 二分查找的搜索

希尔排序

希尔排序

希尔排序(Shellsort),是插入排序的一种更高效的改进版本,它是使排序算法冲破O(n^2)的第一批算法。它对插入排序的改进之处在于改变了插入排序一次只能移动一位的缺点。 希尔排序通过比较相距一定间隔的元素进行排序,通过对相隔一定步长的

分而治之策略–二分查找 最大公约数 幂运算

分而治之策略–二分查找 最大公约数 幂运算

分治策略其想法是把问题分成两个大致相等的子问题,然后分别求解,这是“分”的部分。“治”的阶段把两个子问题的解合并到一起,得到整个问题的解。 如果一个算法用常熟时间O(1)将问题的大小削减为一部分(通常是1/2),那么该算法的时间复杂度是O(

插入排序

插入排序

插入排序是一种简单排序。对于少量元素的排序它很有效。 插入排序的工作方式类似于玩扑克牌抓牌时的排序 开始的时候左手为空,每次从桌子上拿走一张牌并把它插入到左手中正确的位置。可以从右到左依次比较。拿在左手上的牌总是有序的。 c++实现