1 / 10
文档名称:

数据结构排序算法.docx

格式:docx   页数:10页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构排序算法.docx

上传人:799474576 2015/5/29 文件大小:0 KB

下载得到文件列表

数据结构排序算法.docx

文档介绍

文档介绍:常见排序算法总结
1. 基本概念
排序:是将一组数据元素按某种特定要求(升或降序)排列成有规律序列的过程。
排序可以分为内部排序和外部排序两种:
1). 若整个排序过程不需要访问外存便能完成,则称此类排序为内部排序。
2). 若参加排序的记录数量很大,整个序列的排序过程不可能在内存中完成,需要借助外存来完成,则称此类排序为外部排序。//不涉及内外存交换
就地排序:若排序算法所需的辅助空间并不依赖于问题的规模n,即辅助空间为O(1),则称为就地排序。
稳定性:假设在待排序的元素中,存在两个或两个以上的元素具有相同的关键字,在用某种排序法排序后,若这些相同关键字的元素的相对次序仍然不变,则这种排序方法是稳定的。
2. 常见内部排序
交换排序
交换排序的基本思想是两两比较待排序记录的关键字,若发生与排序要求相逆,则交换之,反复进行,直到数据有序。
交换排序的主要方法有:冒泡排序和快速排序。
1). 冒泡排序
a. 算法思想
已知一组无序数据元素P[n],需将按其关键字升序排列。
第一趟对n个元素冒泡得到一个关键字最大的元素P[n-1],第二趟冒泡对n-1个元素得到一个关键字最大的元素P[n-2],依次类推,直到数据有序。
b. 算法实现
void buble(int arr[], int n)
{
bool flag;//用于判断是否发生了交换
int i;
int temp;//临时变量
//反复多轮,从小到大排序。
do {
//一轮排序
flag = false;
//反复比较所有相邻的元素,循环比较n-1次。
for(i = 1; i < n; i++) {
//如果顺序不当,就交换他们。
if(arr[i] < arr[i - 1]) {
temp = arr[i];
arr[i] = arr[i - 1];
arr[i - 1] = temp;
//记录本轮已发生交换
flag = true;
}
}
n--;
}while(flag);//知道本轮没有发生交换,循环退出。
}
注:
冒泡排序算法是稳定的,时间复杂度是O(n^2)。
冒泡排序算法适合只有少量乱序的数据。
2). 快速排序
a. 算法思想
已知一组无序数据元素P[n],需将按其关键字升序排列。
首先任取一个元素P[x](通常选取首元素)作为基准,多次比较P[x]与其它元素并交换。
直到当P[x]可以排在序列的第k位,并且使P[0]~P[k]中的每一个元素小于P[x],P[k+1]~P[n-1]中的每一个元素不小于P[x]时,交换P[x]和P[k]。
再分别对P[0]~P[k-1]和P[k+1]~P[n-1]两组数据元素重复上述过程,直到数据有序。
b. 算法实现
//交换函数
void swap(int *a, int *b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
//快速排序
void qsort(int arr[], int n)
{
int temp;
int *L, *R;

最近更新

2025年度旅游代理中介服务费合同模板 9页

2025年度新房团购定金协议及购房合同 8页

2025年度新型城镇化建设项目环境保洁服务承包.. 9页

2025年度文化旅游区商铺租赁及品牌推广合同 8页

2025年度文化创意产业公司员工劳动合同创新版.. 8页

2025年度数据中心精密环境保洁合同 9页

2025年度教育机构教师劳务派遣合作协议书 9页

2025年度教育培训教室租赁合同 9页

2025年度手摩托车二手市场评估与交易合同 8页

2025年度房地产合同纠纷快速调解专业律师咨询.. 8页

2025年度建筑行业人员借调与项目管理合同 8页

2025年度康复医疗设备租赁与国际化发展合作合.. 9页

2025年度广告宣传居间合同简易执行 8页

2025年度幼儿园幼儿健康监测系统供应协议 9页

2025年度干挂石材行业风险管理与保险合同 7页

2025年度工地农民工培训及劳动合同 7页

小班第二学期教师总结(3篇) 10页

2025年度家长孩子成长计划执行协议 9页

幼儿园教师教学培训学习心得体会(13篇) 27页

应急演练方案模板(31篇) 106页

心得体会工厂实习 24页

2025年度家庭绿化景观设计与生态修复服务合同.. 8页

2025年度家庭保姆个人用工服务协议 7页

春节的记叙文的作文汇总8篇 11页

2025年度定制化健康食品研发生产定作合同模板.. 9页

2025年度宅基地使用权转让协议书(专业版)—.. 7页

2025年安徽省初中学业水平考试名校联考(一)数.. 2页

鞋子销售员工聘用协议 5页

我的大学梦主题班会 29页

2024年江苏泰州兴化市事业单位招考公开招聘历.. 241页