今天大鹏哥跟大家一起学习下交换排序中的高速排序。高速排序是对冒泡排序的一种改进。它的基本思想是。通过一趟排序将待排记录切割成独立的两部分,当中一部分记录的keyword均比还有一部分的keyword小。则可分别对这两部分记录继续进行排序,以达到真个序列有序。高速排序基本步骤: Step1、定义两个变...
分类:
编程语言 时间:
2015-12-26 18:35:10
阅读次数:
186
排序算法一共有八种插入排序:顾名思义,就是将一个个数往已经排序好了的数列中插入。直接插入排序、二分法插入排序、希尔排序交换排序:就是每次拿两个数按照一定的规则进行比较,然后交换位置冒泡排序、快速排序选择排序:就是根据要求每次遍历一遍就选择一个数直接选择排序、堆排序归并排序:就是将全部待排序的数列分来...
分类:
编程语言 时间:
2015-12-17 22:26:33
阅读次数:
258
冒泡排序是一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序为止稳定性:冒泡排序是稳定排序时间复杂度: 最好:O(n) 最差:O(n^2) 平均:O(n^2)辅助空间:O(1)以下的所有代码都要用到的swap函数在此给出/*实现swap功能*/void swa...
分类:
编程语言 时间:
2015-12-08 22:18:01
阅读次数:
315
本文是[数据结构基础系列(9):排序]中第5课时[ 交换排序之快速排序]的例程。1.以第1个元素作为基准#include
#define MaxSize 20
typedef int KeyType; //定义关键字类型
typedef char InfoType[10];
typedef struct //记录类型
{
KeyType key;...
分类:
编程语言 时间:
2015-11-30 22:22:59
阅读次数:
221
本文是[数据结构基础系列(9):排序]中第4课时[交换排序之冒泡排序]的例程。冒泡排序#include
#define MaxSize 20
typedef int KeyType; //定义关键字类型
typedef char InfoType[10];
typedef struct //记录类型
{
KeyType key; //...
分类:
编程语言 时间:
2015-11-30 16:03:16
阅读次数:
174
冒泡排序的时间复杂度为O(n2),虽然很多排序的时间复杂度都是O(n2),但是冒泡排序的O(n2)则显得非常比较大。 简单的说,一般情况下,冒泡排序是很不好的排序,非常慢,但是作为排序算法的入门算法,它的基本思想很是重要。 冒泡排序是交换排序的一种,需要两层循环,以升序排序为例, 第一次循...
分类:
编程语言 时间:
2015-11-22 14:01:20
阅读次数:
163
1 #include 2 using namespace std; 3 4 //************快速排序法********* 5 int partiton(int array[10],int s,int t,int &cutpoint){ 6 int x=array[s]; 7 ...
分类:
编程语言 时间:
2015-11-13 22:17:25
阅读次数:
312
1 #include "iostream" 2 using namespace std; 3 4 //************冒泡排序法********* 5 int bubble_sort(int n,int array[100]){ 6 bool exchange; 7 in...
分类:
编程语言 时间:
2015-11-13 18:44:03
阅读次数:
341
前言 本篇博客是在伍迷兄的博客基础上进行的,其博客地址。 希尔排序相当于直接插入排序的优化,它们同属于插入排序类,堆排序相当于简单选择排序的优化,它们同属于选择排序类。而快速排序其实就是冒泡排序的升级,它们都属于交换排序类。即它也是通过不断的比较和移动交换来实现排序的,只不过它的实现,增大了记录.....
分类:
编程语言 时间:
2015-11-06 22:08:29
阅读次数:
388