算法: 1、首先,找到数组中最小的那个元素。 2、其次,将它和数组的第一个元素交换位置(如果第一个元素就是最小元素,那么它就和自己交换)。 3、再次,在剩下的元素中找到最小的元素,将它与数组的第二个元素交换位置。如此往复,直到将整个数组排序。 这种方法叫做选择排序,因为它在不断地选择剩余元素之中的最 ...
分类:
编程语言 时间:
2020-07-15 15:42:51
阅读次数:
59
TextRank是啥: 一种用于文本的基于图的排序算法。 优点: 不需要学习训练。 模型原理: TextRank可以表示为一个有向有权图G=(V,E),图中任何两点Vi 和Vj之间的边的权重为wji,对于一个给定的点Vi ,In(Vi )为指向该点的点集合。out(Vi )为点Vi指向的点集合。 点 ...
分类:
编程语言 时间:
2020-07-14 15:00:13
阅读次数:
75
/* 先来看下快排 9.9 快速排序 事实上,不论是C++ STL、java SDK或者.NETFrameWork SDK等开发工具包中的源代码中都能找到它的某种实现版本。 快速排序算法是由图灵奖获得者TonyHoare设计出来的,他在形式化方法理论以及AL-GOL60编程语言的发明中都有卓越贡献, ...
分类:
编程语言 时间:
2020-07-14 13:32:15
阅读次数:
70
一、数据结构与算法基础 说一下几种常见的排序算法和分别的复杂度。 用Java写一个冒泡排序算法 描述一下链式存储结构。 如何遍历一棵二叉树? 倒排一个LinkedList。 用Java写一个递归遍历目录下面的所有文件。 二、Java基础 接口与抽象类的区别? Java中的异常有哪几类?分别怎么使用? ...
分类:
编程语言 时间:
2020-07-14 13:31:27
阅读次数:
74
排序算法 冒泡排序(Bubble Sort)--稳定 实质:把小(大)的元素往前(后)调 步骤一:比较相邻的元素。如果第一个比第二个大,就交换他们两个。 步骤二:对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 步骤三: 针对所有的元素重复以上的步骤 ...
分类:
编程语言 时间:
2020-07-14 00:31:20
阅读次数:
73
一、 排序的稳定性:A、B关键字相同,排序后A、B先后次序保持不变——这种排序算法是稳定的 排序算法效率的评价指标: 1.时间效率——排序速度:比较次数和移动次数 2.空间效率——占内存辅助空间大小 3.稳定性 二、 第二步:后移至从最后一个数开始移动(避免覆盖数据 三、 1.找 2.移动 3.写入 ...
分类:
其他好文 时间:
2020-07-12 22:45:56
阅读次数:
73
排序(重新排列表中的元素,使表中的元素满足关键字递增或递减): 稳定性:设表中有两个元素a,b,其对应关键字x,y,且a在b前面,若排序后,a仍在b前面,则我们说该排序算法是稳定的,否则不稳定 内部排序:值在排序期间元素全部放在内存的排序。 插入排序:每次将一个未排列的元素插入到一个已经排好的子序列 ...
分类:
其他好文 时间:
2020-07-12 22:27:05
阅读次数:
73
一.知识梳理 若整个排序过程不需要访问外存便能完成,则称此类排序问题为内部排序 逐步扩大记录的有序序列长度的过程 外部排序 插入 交换 选择归并 分配 排序算法效率的评价指标:时间效率 空间效率 稳定性 ( A和B的关键字相等,排序后A、B的先后次序保持不变) ?直接插入排序(基于顺序查找) 从R[ ...
分类:
其他好文 时间:
2020-07-12 19:04:26
阅读次数:
67
希尔排序:也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。 希尔排序是基于插入排序的以下两点性质而提出改进方法的:1,插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率;2,但插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位; 希 ...
分类:
编程语言 时间:
2020-07-12 16:46:28
阅读次数:
67
一、本章小结 1.根据时间复杂度的不同,常见的算法可以分为3大类。 1).O(n²) 的排序算法 冒泡排序 简单选择排序 插入排序:直接插入,折半插入 2).O(n log n) 的排序算法 希尔排序 归并排序 快速排序 堆排序 2.根据是否受到待排序对象初始排列影响,可分为 1)受到待排序对象的初 ...
分类:
其他好文 时间:
2020-07-12 14:30:19
阅读次数:
62