归并排序
归并排序我在之前已经讲过了,并且给了在数组的数列的情况下的归并排序方法,而排序的时间复杂度为O(NlogN).想看的话链接如下:
归并排序,快排,冒泡排序
但是这个归并排序有一个缺点:需要O(n)的额外空间。
那么这个缺点在什么情况下会解决呢?就是数列是以链表形式存储的时候!就不需要额外的申请O(n)级别的空间。
那么我们为什么要用归并排序呢? 不是还有快排,堆...
分类:
编程语言 时间:
2014-12-12 01:22:17
阅读次数:
250
选择排序:假设变量都定义过//外循环for(k=0;k<n-1;k++){ //n是输入的数组中元素的个数,显示假设a[index]最小,0<k<n-1 index=k;//设初值为0 for(i=k+1;i<n;i++){ //内循环 if(a[i]<...
分类:
编程语言 时间:
2014-12-11 17:13:09
阅读次数:
132
??
/*
*copyright(c) 2014,烟台大学计算机学院
*All rights reserved。
*文件名称:16周(数组排序)
*作者:王忠
*完成日期:2014.12.11
*版本号:v1.0
*
*问题描述:将两个数组冒泡排序
*输入描述:无
*程序输出:冒泡排序后输出
#include
using namespace std;
void s...
分类:
编程语言 时间:
2014-12-11 14:06:57
阅读次数:
109
冒泡排序算法的运作如下:(从后往前) 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所...
分类:
编程语言 时间:
2014-12-11 12:34:36
阅读次数:
163
原文: 一步一步写算法(之选择排序) 【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 选择排序是和冒泡排序差不多的一种排序。和冒泡排序交换相连数据不一样的是,选择排序只有在确定了最小的数据之后,才会发生交换。怎么交换呢?我们可以以下面一组数据作...
分类:
编程语言 时间:
2014-12-11 10:15:25
阅读次数:
174
例题:用冒泡排序法对10个数按从小到大的顺序排序。int main(){ int i,j,t,a[10]; printf("Input 10 integers:\n"); for(i=0;ia[i+1]) { t=a[i]; a[i]=a[i+1]; a[i+1]...
分类:
编程语言 时间:
2014-12-10 17:50:45
阅读次数:
148
//指针在C语言算法中的应用
//首先说的是排序
//排序基本上分为5种
//插入排序, 选择排序, 交换排序, 归并排序, 分配排序
//先说7上8下的冒泡排序
#include
#include
using namespace std;
void BubbleSort(int *Array, int n)
{
int a;
for(int i = n; i > 0;...
分类:
其他好文 时间:
2014-12-10 16:20:49
阅读次数:
222
前段时间用归并排序写了这题,发现树状数组也能解这题,就去学习了一下
首先先来看一个序列 6 1 2 7 3 4 8 5,此序列的逆序数为5+3+1=9。冒泡法可以直接枚举出逆序数,但是时间复杂度太高O(n^2)。冒泡排序的原理是枚举每一个数组,然后找出这个数后面有多少个数是小于这个数的,小于它逆序数+1。仔细想一下,如果我们不用枚举这个数后面的所有数,而是直接得到小于这个数的个数,那么效率将...
分类:
编程语言 时间:
2014-12-09 23:08:39
阅读次数:
270
ABC12初级开发人员3技术分类具体知识点4Java基础、核心语法、数组JDK的安装和配置、Java技术架构、JAVA虚拟机的原理和运行机制; 数组的使用与介绍、一维数组与多维数组的定义、创建和初始化、各种数据类型的数组、Arrays工具类、冒泡排序、选择排序、二分查找。5面向对象程序设计、异常处理...
分类:
其他好文 时间:
2014-12-09 22:59:48
阅读次数:
283
public class BubbleSort{ public static void main(String[] args) { int[] a = {1,9,6,5,8,3,6,2,5,4}; bubbleSort(a); print(a...
分类:
编程语言 时间:
2014-12-09 12:04:49
阅读次数:
219