冒泡排序的基本思路是(以升序为例):每次将相邻两个数字进行比较,将小的数字放在大的前边。例如已知六个数字为9,8,5,4,2,0,第一次现将最前边的9和8进行调换,其次再将9和5进行调换......如图(只进行了两趟交换)如此进行下去,如果有n个数,就要进行n-1趟比较;在第一趟要..
分类:
编程语言 时间:
2016-04-21 18:44:50
阅读次数:
187
快速排序在很多教科书上被称为是起泡排序的改进,但这并不能帮我更好地理解快速排序,一直都是死记硬背,一考完试就很容易忘。 在算法设计与分析的书本上,起泡一般都归为蛮力法,而快排则是分治技术中的一种。快...
分类:
编程语言 时间:
2015-08-17 10:18:12
阅读次数:
126
package two.java.test;
/**
* 冒泡排序最基本的学c语言的时候就先接触的是冒泡排序
* 也有叫起泡排序的不过我还是喜欢叫冒泡排序
*/
public class BubbleSort{
public static void main(String args[ ]){
int [ ]intArray={12,11,45,6,8,43,40,57,3,20...
分类:
编程语言 时间:
2015-07-26 22:47:22
阅读次数:
189
起泡排序问题:该算法必然会结束?至少需要迭代多少趟?不变性:经k 轮扫描交换后,最大的k 个元素必然就位单调性:经k 轮扫描交换后,问题规模缩减至n-k正确性:经至多n 趟扫描后,算法必然终止,且能给出正确解答
分类:
编程语言 时间:
2015-06-10 18:43:38
阅读次数:
418
插入排序
起泡排序
选择排序
归并排序
快速排序
堆排序...
分类:
编程语言 时间:
2015-06-01 22:46:48
阅读次数:
129
template void Vector::sort(Rank lo, Rank hi) { //向量区间[lo, hi)排序
switch (rand() % 5) { //随机选取排序算法。可根据具体问题的特点灵活选取或扩充
case 1: bubbleSort(lo, hi); break; //起泡排序
case 2: sel...
分类:
其他好文 时间:
2015-05-25 10:10:01
阅读次数:
124
算法名称 平均情况 最好情况 最坏情况 辅助空间直接插入排序 O(n^2) O(n) O(n^2) O(1)希尔排序 O(nlgn)-O(n^2) O(n^1.3) O(n^2) O(1)起泡排序 O(n^2) O(n) O(n^...
分类:
编程语言 时间:
2015-04-12 15:59:07
阅读次数:
116
说在前面的话 平常码砖的时候,对于一个数组进行排序更多的是起泡排序,起泡排序对于一般不是很长的数组进行操作没什么问题,一旦数组过大,很明显效率低。 而快排是对起泡排序的一种改进,效率明显优高。快排思路 快排的思想是通过每一次排序将待排的数组分成两部分,左边的部分所有值均小于右边部分,然后再对这两.....
分类:
编程语言 时间:
2015-04-07 17:29:48
阅读次数:
185
1.冒泡排序
起泡排序的思想非常简单。首先,将 n 个元素中的第一个和第二个进行比较,如果两个元素的位置为逆序,则交换两个元素的位置;进而比较第二个和第三个元素关键字,如此类推,直到比较第 n-1 个元素和第 n 个元素为止;上述过程描述了起泡排序的第一趟排序过程,在第一趟排序过程中,我们将关键字最大的元素通过交换操作放到了具有 n 个元素的序列的最一个位置上。然后进行第二趟排序,在第二趟...
分类:
编程语言 时间:
2015-02-23 09:39:46
阅读次数:
301
双向起泡排序是冒泡排序的升级版,双向起泡排序连够在一次循环中同时取得最大值与最小值,所以用双向冒泡排序的交换的次数减少了,从而达到了优化起泡法的作用。
分类:
编程语言 时间:
2015-01-02 12:07:22
阅读次数:
246