快速排序是对冒泡法排序的一种改进。快速排序算法 的基本思想是:将所要进行排序的数分为左右两个部分,其中一部分的所有数据都比另外一 部分的数据小,然后将所分得的两部分数据进行同样的划分,重复执行以上的划分操作,直 到所有要进行排序的数据变为有序为止。可能仅根据基本思想对快速排序的认识并不深,接下来以对...
分类:
编程语言 时间:
2015-03-04 16:30:55
阅读次数:
185
冒泡法: 1 $arr =array(1,5,4,8,45,4,1,96,3); 2 function maopao($arr){ 3 $len=count($arr); 4 for($i=1;$i$arr[$k+1]){ 7 ...
分类:
编程语言 时间:
2015-02-16 16:52:11
阅读次数:
144
将N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。通过一遍扫描,则最后一个元素必定是最大的元素。然后用同样的方法对前N-1个元素进行第二遍扫描。依此类推,最后只需处理两个元素,就完成了对N个数的排序。
本题要求对任意给定的K(
输入格式:
输入在第1行中给出N和K(1
输出格式:
在一行中输出冒泡排序法扫描完第K遍...
分类:
编程语言 时间:
2015-02-13 14:50:07
阅读次数:
347
inti,j,temp;for(j=0;ja[i+1])//数组元素大小按升序排列{temp=a[i];a[i]=a[i+1];a[i+1]=temp;
分类:
编程语言 时间:
2015-02-03 22:33:57
阅读次数:
178
JAVA中在运用数组进行排序功能时,一般有四种方法:快速排序法、冒泡法、选择排序法、插入排序法。快速排序法主要是运用了Arrays中的一个方法Arrays.sort()实现。冒泡法是运用遍历数组进行比较,通过不断的比较将最小值或者最大值一个一个的遍历出来。选择排序法是将数组的第一个数据作为最大或者最...
分类:
编程语言 时间:
2015-02-03 09:22:31
阅读次数:
192
将N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。通过一遍扫描,则最后一个元素必定是最大的元素。然后用同样的方法对前N-1个元素进行第二遍扫描。依此类推,最后只需处理两个元素,就完成了对N个数的排序。本题要求对任意给定的K(#...
分类:
编程语言 时间:
2015-02-02 19:43:28
阅读次数:
212
数组-03. 冒泡法排序(20)时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者徐镜春(浙江大学)将N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。通过一遍扫描,则最后一个元素必...
分类:
编程语言 时间:
2015-01-22 00:11:55
阅读次数:
464
稳定性:
选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,
冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。
复杂度
冒泡法: 复杂度为O(n*n)。当数据为正序,将不会有交换。复杂度为O(0)。不说了。
直接插入排序:O(n*n)
希尔排序:算法的复杂度为n的1.2次幂
选择排序:O(n*n)
快速排序:不稳定,平均时间复杂度O(nlog...
分类:
编程语言 时间:
2015-01-10 01:09:47
阅读次数:
222
/* Copyright (c) 2014, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作者:陈丹妮
* 完成日期:2014年 12 月 14 日
* 版 本 号:v1.0
*
* 问题描述: 用冒泡法按降序排序a中元素
* 输入描述: 输入一个整数
* 程序输出: 输出降序后的数列
*/
#include
usin...
分类:
编程语言 时间:
2014-12-14 15:52:37
阅读次数:
172
前段时间用归并排序写了这题,发现树状数组也能解这题,就去学习了一下
首先先来看一个序列 6 1 2 7 3 4 8 5,此序列的逆序数为5+3+1=9。冒泡法可以直接枚举出逆序数,但是时间复杂度太高O(n^2)。冒泡排序的原理是枚举每一个数组,然后找出这个数后面有多少个数是小于这个数的,小于它逆序数+1。仔细想一下,如果我们不用枚举这个数后面的所有数,而是直接得到小于这个数的个数,那么效率将...
分类:
编程语言 时间:
2014-12-09 23:08:39
阅读次数:
270