冒泡排序(Bubble Sort),它重复地走访过要排序的元素,依次比较相邻两个元素,如果他们的顺序错误就把他们调换过来,直到没有元素再需要交换, 排序完成。这个算法的名字由来是因为越小(或越大)的元素会经由交换慢慢“浮”到数列的顶端 冒泡排序算法的运作如下: 比较相邻的元素,如果前一个比后一个大, ...
分类:
编程语言 时间:
2018-03-12 10:27:54
阅读次数:
200
"快速排序"的思想很简单,整个排序过程只需要三步: (1)在数据集之中,选择一个元素作为"基准"(pivot)。 (2)所有小于"基准"的元素,都移到"基准"的左边;所有大于"基准"的元素,都移到"基准"的右边。 (3)对"基准"左边和右边的两个子集,不断重复第一步和第二步,直到所有子集只剩下一个元 ...
分类:
编程语言 时间:
2018-02-15 00:19:21
阅读次数:
213
一、问题描述 一个有序数组,将它截成两部分,然后两部分换位置,得到数组nums。比如对于01234567这个数组,分成012和4567这两个部分,然后把这两个部分调换位置,012放在后,4567放在前,假设得到的数组为nums。 二、问题解决 思路一:最简单的遍历一遍,找到和target相等的数,返 ...
分类:
其他好文 时间:
2018-01-22 14:07:18
阅读次数:
135
这东西。。。好简单的诶 不过貌似一年前的时候,还没有写博客的习惯 那就来总结一下呗 首先来说大根堆 把大根堆当成一个完全二叉树(这个说法其实不准确) 对于a[i],左儿子为a[i*2]右儿子为a[i*2+1] 也就是说我们已经有一颗树了 然后我们从后往前fix每个节点 fix(x)就是将x放到他该在 ...
分类:
编程语言 时间:
2017-12-25 01:01:35
阅读次数:
144
一、PTA实验作业 题目1: 1. 本题PTA提交列表 2. 设计思路 3.代码截图 4.本题调试过程碰到问题及PTA提交列表情况说明 碰到的问题:最开始用冒泡法,排序反了 解决方法:改变冒泡法内层循环的判断条件,改为 小于时调换位置 if(p[j].sum include define maxn ...
分类:
编程语言 时间:
2017-12-24 17:28:12
阅读次数:
499
public class HeapSort { 1. 2. public static void sort(Comparable[] data) { 3. // 构建最大堆 4. buildMaxHeap(data); 5. // 循环,每次把根节点和最后一个节点调换位置 后面的扔了搞前面的 ... ...
分类:
编程语言 时间:
2017-11-27 12:47:49
阅读次数:
163
一. 我们仔细看这个封装的定义,隐藏对象的属性我们是了解的,隐藏实现细节是指将操作放置在方法中么?接着后面一句,提供公共访问方式。如果我们没有成员变量,更不要说隐藏成员变量了,而是直接在方法中书写变量行不行呢?按道理来说,在调用时,一样是可以输出的,但是意义好像变了。 把age隐藏了,对外提供公共的 ...
分类:
编程语言 时间:
2017-10-10 00:04:28
阅读次数:
225
选择排序是每次从序列中挑出一个最小的数字放在开始位置,依次往后即可,如何找到最小的元素可以有两种方法。 1、简单选择排序,就是直接找了,每次找到最小那个放在起始位置。 2、堆排序,在二叉树中执行,要求每个节点都比左右节点大,整个树的根节点就是最大的,然后将根节点与最后一个节点调换位置,并重新排列,这 ...
分类:
编程语言 时间:
2017-09-24 14:31:33
阅读次数:
191
/*冒泡排序基本思想:把记录当作一个纵向排列,每趟排序自底向上排列,每次进行相邻比較,假设第上面的数比以下的大,就调换位置,每趟排序都会使排序范围内 最小的数像气泡一样上浮到相应的位置. 初态 第1趟 第2趟 第3趟 第4趟 第5趟 第6趟 第7趟 38 12 12 12 12 12 12 12 2 ...
分类:
编程语言 时间:
2017-08-18 17:08:12
阅读次数:
116
题目梗概 有n个大臣,他们可以拿到他们之前所有人左手数的乘积除以他的右手,问是否能通过调换位置来使拿钱最多的大臣拿的钱最少。 思考 贪心证明: 设相邻的两个人$i, i + 1$。设$A[i] \times B[i] \leqslant A[i + 1] B[i + 1]$,i之前所有人的左手乘积为 ...
分类:
其他好文 时间:
2017-08-08 14:03:56
阅读次数:
162