第八章的内容是排序,看上去很简单,实际上它有很多不同的分类。我觉得全章最难的部分就是算法的理解和时间效率(分最好情况和最坏情况)的分析上。 首先排序整体上可以分成两类:内部排序和外部排序。顾名思义,内部排序就是在内存中完成排序,外部排序就是在内存之外借助外存空间进行排序(数据量足够大的时候)。之前学 ...
分类:
其他好文 时间:
2020-07-11 22:40:02
阅读次数:
72
第三章 这些算法很有用 3.3 查找 1.顺序查找 从第一个开始逐个比较,知道找出与给定关键字相同的数为止。 2.二分查找 二分查找是一种效率较高的方法。 *二分查找一定要在排序后进行 *通过不断找中点进行判断待找的数字在左边还是右边 3.4 Java工具类中算法的实现 对于前面的一些算法,Java ...
分类:
编程语言 时间:
2020-07-11 19:33:12
阅读次数:
68
数据结构第八章小结 一、知识点 1、基本概念 排序:按关键字非递增或非递减顺序对一组记录重新排序的操作。 (1)内部排序与外部排序。内部排序:整个排序过程不需要访问外存便能完成外部排序:参加排序的记录数量很大,整个序列的排序过程不可能在内存中完成,需要借助外存 (2)排序稳定性 稳定:冒泡排序、插入 ...
分类:
其他好文 时间:
2020-07-11 18:57:28
阅读次数:
45
一、算法原理 冒泡算法的本质是交换--数组元素间的对比交换+数组元素递增比较(确保最后一个肯定是最大的)+趟数用递增减少次序。 二、程序 #include<iostream> using namespace std; int main() { int n[5]={3,1,4,5,2}; for(in ...
分类:
编程语言 时间:
2020-07-11 09:26:36
阅读次数:
53
第三章 这些算法很有用 3.1 比较值 1.最大值 *两个数的比较 *for循环遍历 *两两比较 *分为两部分比较 2.最小值 最小值的算法与最大值类似 *for循环遍历 两两比较 分成两部分 3.平均值 3.2 数字排序 1.冒泡排序 2.选择排序 3.选择排序 今天就先到这里吧,后面的快速排序实 ...
分类:
编程语言 时间:
2020-07-10 13:27:53
阅读次数:
57
前言 将下面按照从小到大排序: int[] arr = { 4, 6, 8, 5, 9 }; 这时候可以通过冒泡排序,计数排序等。 但是一但数据arr很大,那么会产生排序过于缓慢,堆排序就是一个很好的解决方案。 树的堆,有最大堆和最小堆。 看下最大堆: 它是这样子的,就是说一个节点的大小一定大于它的 ...
分类:
编程语言 时间:
2020-07-10 11:22:48
阅读次数:
72
一. 今天学习了一些算法; 求最小值,最大值,平均值 接着学了几种排序方法 1.冒泡排序 (1)逐一比较数组中响铃的两个元素,如果后面的数字小于前面的数字,就交换先后元素; (2)经过一个轮次的比较,一定有一个最大的排在最后的位置; (3)每次比较省下的元素,经过n-1次比较 2.选择排序 (1)将 ...
分类:
编程语言 时间:
2020-07-10 00:06:28
阅读次数:
56
var arr=[12,83,27,65,45,32,27,11,4]; var k; for(i=0;i<arr.length-1;i++){ for(j=0;j<arr.length-1-i;j++){ if(arr[j]>arr[j+1]){ k=arr[j]; arr[j]=arr[j+1] ...
分类:
编程语言 时间:
2020-07-08 20:00:42
阅读次数:
71
前天收到董董邀约的信息,整个人都激动了两秒,心里面的喜悦蹭蹭蹭冒泡。多少年没有见了呢,大概有三四年吧,还记得最后一次和她见面的时候好像不太愉快,因为自己的过失导致两个人相处的时间不多。今天看到她,嗯,整个人都很有气质,更瘦了也更美了,还更有自信了。很喜欢她现在的状态,散发着自信的魅力。这个下午相处得 ...
分类:
其他好文 时间:
2020-07-08 01:45:40
阅读次数:
89
冒泡排序 4.1 基本介绍 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。 因为排序的过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行过交换 ...
分类:
编程语言 时间:
2020-07-07 23:42:15
阅读次数:
89