数据结构与算法
数据结构与算法是程序员需要掌握的知识
喝可乐的希饭a
在校程序猿
展开
-
数据结构与算法之希尔排序
1.基本思想希尔排序是基于插入排序的,又叫缩小增量排序。在插入排序中,标记符左边的元素是有序的,右边的是没有排过虚的这个算法取出标记符所指向的数据,存入一个临时变量,然后再缩编有序的数组红找到临时变量应该插入的位置,然后将插入位置之后的元素依次后移一位,最后插入临时变量中的数据,试想,假如有一个很小的数据项再靠近右端的位置上,把这个数据项插入到有序数组中时,将会有大量的中间数据项需要右移一位,这个步骤对每个数据项都执行了将近N次复制。虽然不是所有数据项都必须移动N个位置,但是,数据项平均移动了N/2个位原创 2022-03-04 21:50:22 · 408 阅读 · 0 评论 -
数据结构与算法之基数排序
1.基本思想基数排序是在同排序的基础上发展而来,两种排序都是分配排序的高级实现。分配排序的基本思想:排序过程无须比较关键字,而是通过“分配和“收集”过程来实现排序。它们的时间复杂度可达到线性阶:O(n)。先来看一下桶排序:桶排序也称为箱排序(Bin Sort),其基本思想是:设置若干个桶,依次扫描待排序的记录R[0],R[1],…,R[n-1],把关键字在某个范围内的记录全都装入到第k个桶里(分配),然后按序号依次将各非空的桶首尾连接起来(收集)。例如,要将一副混洗的52张扑克牌按点数A<2原创 2022-03-04 17:06:09 · 514 阅读 · 0 评论 -
数据结构与算法之归并排序
1.基本思想该算法采用经典的分治策略(分支法讲问题分成一些小的问题然后递归求解,而治的阶段则将分的阶段得到的答案“补修”在一起,机分而治之)分治算法分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。分治算法的一般步骤:(1)分解,将要解决的问题划分成若干规模较小的同类问题;(2)求解,当子问题划分得足够小时,用较简单的方法解决;(3)合并,按原问题的要求,将子问题的解逐层合并构成原问题的解。归并排序是原创 2022-03-03 20:54:36 · 187 阅读 · 0 评论 -
数据结构与算法之快速排序
1.基本思想快速排序也是基于分支算法的,步骤大致如下:(1)选择一个基准元素,通常选择第一个元素或者最后一个元素;(2)通过一趟排序讲待排序的记录分割成独立的两个部分,其中一部分记录的元素值均比基准元素值小,另一部分记录的元素值比基准值大。(3)此时基准元素在其排好序后的正确位置;(4)然后分别对这两部分记录用同样的方法继续进行排序,知道整个序列有序。在上图中只是这排序中的第一趟,第二趟依旧按此方法进行排序,在57分为左右两段进行排序。2.实例public class Sort {原创 2022-03-03 13:00:47 · 362 阅读 · 0 评论 -
数据结构与算法之插入排序
1.基本思想在一组要排序的数中,假设前面有(n-1)[n>=2]个数已经拍好顺序的,现在要把第n个数找到相应位置并插入,使得这n个数也是排好顺序的。反复循环,直到拍好所有的数2.实例private int[] array; public Sort(int[] array) { this.array = array; } //排序打印格式 public void display(){ for (int i = 0; i <原创 2022-03-02 21:47:27 · 169 阅读 · 0 评论 -
数据结构与算法之直接选择排序
前言冒泡排序算法中的缺点:在两个数之间比较会进行多次交换位置才能得出最终结果。就比如第一个数A与第二个数B比较,只要A比B大就会进行交换,但不能确定的是否是最小的元素。1.基本思想而选择排序则可以避免这种耗时间的交换操作,从第一个元素开始,扫描整个待排序数组,找到最小元素之后再与第一个元素进行交换,然后再从第二个元素开始,继续寻找最小的元素与第二个元素进行交换位置,以此类推。2.实例public class Sort { private int[] array; pu原创 2022-03-02 13:34:05 · 282 阅读 · 0 评论 -
数据结构与算法之冒泡排序
前言冒泡算法的效率很低,但实现简单,适合作为入门的算法1.基本思想对当前的为排列好序的范围内的数进行排序,通过对比临近的两个数的大小进行比较调整;让大的数进行下沉,小的数进行上浮。既是:当每两个数比较后发现他们的排序与排序的要求相反时,将它们进行交换。每次遍历都可确定一个最大值放到待排序数组的末尾,下次遍历,对该最大值以及它之后的元素不再排序。2.实例public class Sort { private int[] array; public Sort(int[] ar原创 2022-02-28 20:37:27 · 205 阅读 · 0 评论