为了让大家掌握多种排序方法的基本思想,本篇文章带着大家对数据结构的常用七大算法进行分析:包括直接插入排序、希尔排序、冒泡排序、快速排序、简单选择排序、堆排序、归并排序等,并能够用高级语言实现。
希望通过对这些算法效率的比较,加深对算法的理解。
①插入排序
②折半插入排序
③选择排序
④起泡排序
⑤快速排序
⑥希尔排序
⑦堆排序
⑧归并排序
排序算法的分析图解:
用随机数(介于1-100)产生10个待排序数据元素的关键字值)。
① 采用直接插入排序和希尔排序方法对上述待排数据进行排序并输出序后的有序序列;
② 采用冒泡排序、快速排序方法对上述待排数据进行排序并输出序后的有序序列;
③ 采用简单选择排序、堆排序方法对上述待排数据进行排序并输出序后的有序序列;
④ 采用归并排序方法对上述待排数据进行排序并输出排序后的有序序列;
代码分析
头文件:
#include<cstdio>
#include<iostream>
#include<cstdlib>
#define MAXSIZE 100
using namespace std;
typedef int KeyType;
typedef int InfoType;
typedef struct{
KeyType key;
InfoType otherinfo;
}RedType;
typedef struct{
RedType r[MAXSIZE+1];
int length;
}SqList;
①插入排序