原文地址:【数据结构与算法】—— 二分查找 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。 二分介绍 前面介绍了,不多说 查找思路 首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后...

原文地址: 【数据结构与算法】—— 插入排序 插入排序(Insertion sort)是一种简单直观且稳定的排序算法。如果有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个...

原文地址: 【数据结构与算法】—— 选择排序 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。 介绍 上面介绍过了...

原文地址: 【数据结构与算法】—— 冒泡排序 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。 这个算法的名字由来是因为越小的元素会经由交换慢慢&l...

目录 一、问题描述 二、思路分析 三、代码实现 3.1  情况1对应的代码 3.2  情况2对应的代码 3.3  情况3对应的代码 四、总结 一、问题描述      A:假设一个含有n个元素的数组,采用二分查找的方法寻找某个元素; 二、思路分析      A:通过简单的数组进行推导,可以分...

排序2-冒泡

算法与数据结构  

  

2020-10-30 16:00:47

1. 动图演示 2. 算法说明:  比较相邻的元素。如果第一个比第二个大,就交换它们两个; 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数; 针对所有的元素重复以上的步骤,除了最后一个; 重复步骤1~3,直到排序完成 3. java实现:  ...

排序4-shell

算法与数据结构  

  

2020-10-30 20:23:01

    在插入排序中,数组项只移到相邻位置。当项与正确的有序位置距离较远时,它必须进行很多次这样的移动。所以当数组完全无序时,插入算法效率不高,但当数组基本有序时,插入法有很好的效率.        1959年Shell发明,第一个突破O(n2)的排序算法,是简单插入排序的改进版。它与插入排序的不同之处在于,它会优先比较距离较远的元素。希...

排序3-插入

算法与数据结构  

  

2020-10-31 02:05:31

1. 动图演示 2. 算法说明:       通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。   (有点像打扑克牌,抓牌的场景) 从第一个元素开始,该元素可以认为已经被排序; 取出下一个元素,在已经排序的元素序列中从后向前扫描; 如果该元素(已排序)大于新元素,将该元素移到下一位置; 重复步骤3,直到找...

哥德巴赫猜想 哥德巴赫猜想概述: 任何一个≥6之偶数,都可以表示成两个奇质数之和 那么,接下来,我们就来研究研究哥德巴赫猜想的验证及优化方案: 第一步,先建立头文件 “mec.h”(建立头文件的目的:简化程序,使程序更加直观,编写更加方便,在查找错误以及修改程序时,更加方便): 这里解释一下这个头文件的内容:用C语言编译器来实现java中数据类型boolean,这种类...