数据结构与算法
aniya_ai
电子系在读学生
展开
-
线性表-1
“ 线性表(Linear List)”原创 2017-09-04 21:54:01 · 160 阅读 · 0 评论 -
线性表-2
线性表的链式存储实现原创 2017-09-05 13:06:28 · 120 阅读 · 0 评论 -
冒泡排序-java实现
冒泡排序原创 2017-09-06 13:34:44 · 126 阅读 · 0 评论 -
选择排序
选择排序是一种原地排序算法,适用于小文件,由于选择操作是基于键值的且交换操作只有在需要的时候进行,所以选择排序常用于数值较大和键值较小的文件。 优点:容易实现;不需要额外的存储空间 缺点:扩展性差:O(n^2) 算法思想: 寻找序列中的最小值, 用当前的值交换最小值 对所有的元素重复以上过程,知道整个序列排序完成void Selection(int []array){ i原创 2017-09-06 13:46:58 · 144 阅读 · 0 评论 -
插入排序-java
插入排序是一种简单且高效的比较排序算法。在每次迭代过程中算法随机的从输入序列中移出一个元素,并将该元素插入待排序列的正确位置。重复该过程,知道所有的输入元素都被选择一次。 优点: 实现简单。 数据量较少时效率高。 适应性:如果输入序列已经与排序(可能是不完全的预排序),则时间复杂度为O(n+d),d是反转的次数 算法的实际运行效率优于选择排序和冒泡排序,即使在最坏的情况下三个算法的时间复杂原创 2017-09-06 23:51:47 · 190 阅读 · 0 评论 -
希尔排序
基本思想:在直接插入排序中,只比较相邻的结点,一次比较最多把结点移动一个位置。如果对位置间隔较大距离的结点进行比较,使得结点在比较以后能够一次跨过较大的距离,这样就可以提高排序的速度。 希尔排序的基本过程: 设待排序的对象序列有n条记录,将整个待排序的记录序列分割成的若干子序列分别进行直接插入排序。 首先取一个记录间隔值d1 < n,把全部记录按此间隔值从第1条记录开始每间隔d1个取一个记录,原创 2017-09-07 13:36:00 · 199 阅读 · 0 评论 -
归并排序
两个有序的子列的归并 1 13 24 26 2 15 27 38 一个空的数组 先用1与2比,将小的放进数组中,然后第一个数组的索引++,空的数组索引++。 所以可以知道时间复杂度为O(n) //归并排序 arr1传入数组,arr2临时数组,left左边起始位置,right右边起始位置,rightend右边终点位置 public static void Mer转载 2017-09-07 21:35:19 · 177 阅读 · 0 评论