一、本章小结 1.根据时间复杂度的不同,常见的算法可以分为3大类。 1).O(n²) 的排序算法 冒泡排序 简单选择排序 插入排序:直接插入,折半插入 2).O(n log n) 的排序算法 希尔排序 归并排序 快速排序 堆排序 2.根据是否受到待排序对象初始排列影响,可分为 1)受到待排序对象的初 ...
分类:
其他好文 时间:
2020-07-12 14:30:19
阅读次数:
62
排序的概念 排序的方式: 1、插入排序: 直接插入排序: 一 一比对 折半插入排序:在已经拍好的序列中插入,适合初始记录无序、n较大的情况 希尔排序:待排序的关键字基本有序->效率较高 分组插入,先分割(相隔某个增量的记录),对每组进行直接插入排序(不能用于链式结构) 2、交换排序: 冒泡排序:左右 ...
分类:
其他好文 时间:
2020-07-12 12:36:00
阅读次数:
55
排序: (1)内部排序与外部排序 内部排序:指待排序记录全部存放在计算机内存中进行排序的过程 外部排序:指的是待排序记录的数量很大,以致内存一次不能容纳全部记录,在排序过程中尚需对外存进行访问的排序过程。 (2)内部排序方法的分类 1、插入类:如交换插入排序、折半插入排序和希尔排序 2、交换类:主要 ...
分类:
其他好文 时间:
2020-07-12 12:33:11
阅读次数:
52
冒泡排序(Bubble Sort):是一种直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 算法步骤: 1, ...
分类:
编程语言 时间:
2020-07-12 12:27:34
阅读次数:
118
选择排序 是一种简单直观的排序算法,它也是一种交换排序算法,和冒泡排序有一定的相似度,可以认为选择排序是冒泡排序的一种改进。 表现最稳定的排序算法之一,因为无论什么数据进去都是O(n2)的时间复杂度,所以用到它的时候,数据规模越小越好。 原理 首先在未排序序列中找到最小(大)元素,存放到排序序列的起 ...
分类:
编程语言 时间:
2020-07-11 22:56:06
阅读次数:
65
第三章 这些算法很有用 3.3 查找 1.顺序查找 从第一个开始逐个比较,知道找出与给定关键字相同的数为止。 2.二分查找 二分查找是一种效率较高的方法。 *二分查找一定要在排序后进行 *通过不断找中点进行判断待找的数字在左边还是右边 3.4 Java工具类中算法的实现 对于前面的一些算法,Java ...
分类:
编程语言 时间:
2020-07-11 19:33:12
阅读次数:
68
java流程控制 1.用户交互Scanner(Scanner对象) 基本语法中没有实现程序和人的交互,但是java给我们提供了这样一个工具类,我们可以获取用户的输入。java.util.Scanner是java5的新特征,我们可以通过Scanner类来获取用户的输入 基本语法: 通过Scanner类 ...
分类:
编程语言 时间:
2020-07-11 19:17:26
阅读次数:
46
数据结构第八章小结 一、知识点 1、基本概念 排序:按关键字非递增或非递减顺序对一组记录重新排序的操作。 (1)内部排序与外部排序。内部排序:整个排序过程不需要访问外存便能完成外部排序:参加排序的记录数量很大,整个序列的排序过程不可能在内存中完成,需要借助外存 (2)排序稳定性 稳定:冒泡排序、插入 ...
分类:
其他好文 时间:
2020-07-11 18:57:28
阅读次数:
45
1.数组的长度是固定不变的,不可以扩展,可以存储基本数据类型或对象(对象的集合) 2.数组结构分为: *一维数组 * 二维数组 * 多维数组 3.一维数组的定义: *data_type[] varName 可以进行多个数组变量的声明 * 或 date_type varName[] 不可以进行多个数组 ...
分类:
编程语言 时间:
2020-07-10 13:28:56
阅读次数:
65
第三章 这些算法很有用 3.1 比较值 1.最大值 *两个数的比较 *for循环遍历 *两两比较 *分为两部分比较 2.最小值 最小值的算法与最大值类似 *for循环遍历 两两比较 分成两部分 3.平均值 3.2 数字排序 1.冒泡排序 2.选择排序 3.选择排序 今天就先到这里吧,后面的快速排序实 ...
分类:
编程语言 时间:
2020-07-10 13:27:53
阅读次数:
57