排序算法—冒泡排序排序算法—冒泡排序Table of Contents1 问题描述2 冒泡排序(Bubble)2.1 冒泡排序(一)2.2 冒泡排序(二)2.3 冒泡排序(三)2.4 冒泡排序(四)3 阅读参考1 问题描述引子 排序是数据结构中十分重要的一章,排序算法有很多种,一直没时间整理而且很多...
分类:
其他好文 时间:
2014-08-18 21:45:02
阅读次数:
366
冒泡排序算法是思路最简单、最直接的排序方法之一。每遍历一遍,则将最大(或者最小)的一个数冒泡出来。预先定义的排序类型。由于只是为了验证排序方法是否正确,所以此处只是简单的对10个元素进行排序检测。如下所示:#define MAXSIZE 10typedef struct { int r[MAXSI....
分类:
其他好文 时间:
2014-08-18 20:27:32
阅读次数:
210
排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。
常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。
本文将依次介绍上述八大排序算法。
算法一:插入排序
插入排序示意图
插入排序是一种最简单直观的排序算法,它的工作原理是...
分类:
其他好文 时间:
2014-08-18 14:37:12
阅读次数:
255
排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。本文将依次介绍上述八大排序算法。算法一:插...
分类:
其他好文 时间:
2014-08-18 14:20:12
阅读次数:
259
目录: 一、什么是Thrift? 1) Thrift内部框架一瞥 2) 支持的数据传输格式、数据传输方式和服务模型 3) Thrift IDL 二、Thrift的官方网站在哪里? 三、在哪里下载?需要哪些组件的支持? 四、如何安装? 五、Golang、Java、Pytho...
分类:
编程语言 时间:
2014-08-17 22:44:13
阅读次数:
407
今天说的仍然是一中简单排序——冒泡排序,时间复杂度O(n^2)。 其基本思想是: 通过相邻元素之间的比较和交换使较小的元素逐渐从后向前移动,就像水底的气泡一样逐渐向上冒。 具体过程如下: 首先比较d[n]和d[n-1],若d[n]<d[n-1],则交换,使较小的元素前移,较大的元素后移;接着比较.....
分类:
其他好文 时间:
2014-08-17 11:38:12
阅读次数:
149
关于冒泡排序时间复杂性,大家都知道最坏情况下为O(n^2)为什么最好情况下为O(n),很多人有疑问,下面我们就来分析一下:
首先大家看看下面两种冒泡排序的方法:
方法一:
//冒泡排序
template class T>
void Bubble(T a[],int n)
{
//把数组a[0:n-1]中最大的元素冒泡移到右边
for(int i=...
分类:
其他好文 时间:
2014-08-17 09:11:52
阅读次数:
199
#include void bubble_sort(int a[],int n)//n为数组a的元素个数 { int i,j,temp; for(j=0;ja[i+1]) { temp=a[i]; a[i]=a[i+1]; a[i+1]=temp; ...
分类:
其他好文 时间:
2014-08-16 11:09:40
阅读次数:
222
#include void bubble_sort(int a[],int n)//n为数组a的元素个数 { int i,j,temp; for(j=0;ja[i+1]) { temp=a[i]; a[i]=a[i+1]; a[i+1]=temp; ...
分类:
其他好文 时间:
2014-08-16 11:02:00
阅读次数:
235
快速排序法基本思想:
快速排序(Quicksort)是对冒泡排序的一种改进。由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
程序代码:
#include
...
分类:
其他好文 时间:
2014-08-15 18:01:09
阅读次数:
252