算法

插入排序算法C/C++代码图文讲解

插入排序的代码实现虽然没有冒泡排序和选择排序那么简单粗暴,但它的原理应该是最容易理解的了,因为只要打过扑克牌的人都应该能够秒懂。插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。

冒泡排序算法C/C++代码图文讲解

冒泡排序(BubbleSort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。

排序算法简介

什么是排序?就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。排序算法,就是如何使得记录按照要求排列的方法。排序算法在很多领域得到相当地重视,尤其是在大量数据的处理方面。一个优秀的算法可以节省大量的资源。在各个领域中考虑到数据的各种限制和规范,

前缀和理解与应用

本篇内容主要学习前缀和与其应用。一、前缀和概念前缀和是指某序列的前n项和,可以把它理解为数学上的数列的前n项和,而差分可以看成前缀和的逆运算。合理的使用前缀和与差分,可以将某些复杂的问题简单化。简单来说:我们有一个数组x和它的前缀和数组y,他们满足以下公式。

桶排序算法C/C++代码图文讲解

桶排序是计数排序的升级版。它利用了函数的映射关系,高效与否的关键就在于这个映射函数的确定,这篇文章就带大家认识一下桶排序。一、桶排序桶排序(Bucketsort)或所谓的箱排序,是一个排序算法,工作的原理是将数组分到有限数量的桶里。每个桶再个别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序

分治算法概念与实例讲解

本篇主要是围绕着分治算法的概念、思想、策略以及步骤四个方向叙述,同时通过汉诺塔游戏的讲解,促进大家对分治算法的理解。一、基本概念  在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,

递归算法概念与实例讲解

本篇主要是围绕着递归算法的概念、实质、思想以及设计要素四个方向叙述,同时通过实例讲解,促进大家对递归算法的理解。一、算法概念递归算法是一种直接或者间接调用自身函数或者方法的算法。说简单了就是程序自身的调用。二、算法实质递归算法就是将原问题不断分解为规模缩小的子问题,然后递归调用方法来表示问题的解。

算法是什么?

算法的出现,远远早于计算机,所以关于算法的知识点也非常多,大家不要急于求成,而本篇将从算法的概念、特征、评价以及复杂度四个方面详细介绍算法,希望关于算法的内容给大家一个清晰的认识,方便大家在日后的运用有更深的概念。一、算法的概念算法(algorithm,

贪心算法的基本思想与实例讲解

贪心算法是什么?并不是字面上贪心的意思,而且选出目前最好的结果,这块有个误区,并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。虽然贪心算法不能对所有问题都能得到最优的结果,但对许多问题它能产生某个条件下整体的最优解。如最小生成树问题等。

模拟算法实例讲解

模拟,属于入门级算法,顾名思义,就是让电脑按照题目所给出的方法来运行,最终输出所需要的结果的过程。本篇主要是从模拟算法的概念和实例进行讲解和分析。一、模拟的概念(1)模拟的介绍模拟就是用计算机来模拟题目中要求的操作。模拟题目通常具有码量大、操作多、思路繁复的特点。