算法
算法学习记录
zhangbin_237
这个作者很懒,什么都没留下…
展开
-
【排序算法】快速排序的改进
快速排序有以下几种思路可以优化,一般来说,可以提升20%~30%的性能原创 2024-01-19 17:50:40 · 565 阅读 · 0 评论 -
【排序算法】快速排序的性能特点
快速排序切分方法的内循环会用一个递增的索引将数组元素和一个定值作比较。这种简洁性是快速排序的一个优点。归并排序和希尔排序一般都比快速排序慢,原因就是他们还在内循环中移动数据。原创 2024-01-18 17:08:22 · 464 阅读 · 0 评论 -
【排序算法】快速排序的基本算法
快速排序是应用最广泛的排序算法,流行的原因是它实现简单,适用于各种不同的输入数据且在一般应用中比其他排序算法都要快得多。快速排序引人注目的特点是原地排序,只需要一个很小的辅助栈,且将长度为N的数组排序所需时间和NlgN成正比。另外,快速排序的内循环比其他大多数排序算法都要短小。它的主要缺点是非常脆弱,在实现时需要非常小心才能避免低劣的性能。原创 2024-01-18 16:26:09 · 696 阅读 · 0 评论 -
【排序算法】Python实现——选择排序、插入排序、希尔排序
Python实现——选择排序、插入排序、希尔排序原创 2024-01-18 14:34:47 · 508 阅读 · 0 评论 -
【排序算法】排序算法的复杂度
研究复杂度的第一步是建立一个计算模型。一般来说,研究者会尽量寻找一个和问题相关的最简单的模型。对排序来说,研究对象是基于比较的算法,它们对数组元素的操作方式是由主键的比较决定的。一个基于比较的算法在两次比较之间可能会进行任意规模的计算,但它只能通过主键之间的比较得到某个主键的信息。原创 2024-01-17 19:03:58 · 511 阅读 · 0 评论 -
【排序算法】自底向上的归并排序
递归实现的归并排序是算法设计中分治思想的典型应用。实现归并排序的另一种方法是先归并那些微型数组,然后再成对的归并得到的子数组,循环操作,最终得到排序完成的数组。这种实现方法比标准递归方法代码量更少。原创 2024-01-17 18:29:33 · 672 阅读 · 0 评论 -
【排序算法】自顶向下的归并排序
要将一个数组排序,可以先递归的将它分成两半分别排序,然后将结果归并起来,这就是归并排序。归并排序最吸引人的性质是它能够保证将任意长度为N的数组排序所需时间和NlogN成正比,它的主要缺点是它需要额外的与N成正比的空间。原创 2024-01-17 18:08:48 · 611 阅读 · 0 评论 -
【排序算法】希尔排序
希尔排序的思想是使数组中任意间隔为h的元素都是有序的。这样的数组被称为h有序数组。在排序时,如果h很大,就能将元素移动到很远的地方,为实现更小的h有序创造条件。用这种方法,对于任意以1为结尾的h序列,都能够将数组排序。这就是希尔排序。原创 2024-01-16 18:26:33 · 969 阅读 · 0 评论 -
【排序算法】插入排序
插入排序:为了给要插入的元素腾出空间,将其余所有元素在插入之前都向右移动一位。与选择排序一样,插入排序中当前索引左边的所有元素都是有序的,但它们的最终位置还不确定,当索引到达数组的右端时,数组排序就完成了。原创 2024-01-16 17:44:04 · 713 阅读 · 0 评论 -
【算法】选择排序
最简单的排序算法:首先,找到数组中最小的元素,其次,将它和第一个元素交换位置;然后,在剩下的元素中找到最小的元素,将它和第二个元素交换位置;如此往复,直到将整个数组排序,这种方法叫做选择排序,因为他在数组里不断地选择剩余元素的最小者。原创 2024-01-16 17:21:04 · 674 阅读 · 0 评论 -
【算法基础】java基础——字符串&输出
字符串是由一串字符(char类型的值)组成的。一个string类型的字面量包括一对双引号和其中的字符,比如"hello world"。String非常基础,几乎所有Java程序都会用到。原创 2024-01-15 15:27:41 · 421 阅读 · 0 评论 -
【算法基础】java基础——数组&静态方法
数组能够顺序存续相同类型的多个数据。原创 2024-01-15 14:27:11 · 411 阅读 · 0 评论 -
【算法基础】java基础——基本结构、数据类型、表达式、语句
数据类型就是一组数据和对其所能进行的操作的集合。Java最基本的数据类型:整型、双精度实数类型、布尔型、字符型。Java程序控制的是用标识符命名的变量。每个变量都有自己的类型并存储了一个合法的值。原创 2024-01-15 13:42:25 · 445 阅读 · 0 评论 -
【算法】简单的二分查找算法
二分查找算法由静态方法rank()实现,它接受一个整数键和一个有序的int数组作为参数,如果整数存在于数组,返回它的索引,否则返回-1,算法使用两个变量lo和hi,并保证整数如果存在于数组中则它一定存在于a[lo...hi]中,然后通过循环不断查找,每次查找如果没有查找到就将查找范围缩小一半。原创 2024-01-12 10:53:39 · 685 阅读 · 0 评论