- 0
- 0
- 约5.73千字
- 约 23页
- 2021-06-27 发布于山东
- 举报
精品文档
精品文档
PAGE
PAGE21
精品文档
PAGE
实用文档
一 插入排序
1.1 直接插入排序
基本思想:每次将一个待排序额记录按其重点码的大小插入到一个已经排好序的有序序列中,直到全部记录排好序。
图解:
代码实现:
[cpp] viewplain copy
//直接次序排序
2. void InsertSort( int r[], int n)
{
for(inti=2;in;i++)
标准文案
实用文档
{
6.
r[0]=r[i];
//
设置哨兵
7.
for(intj=i-1;r[0]r[j];j--)
//
寻找插入位置
8.
r[j+1]=r[j];
//
记录后移
r[j+1]=r[0];
}
for(intk=1;kn;k++)
12.
coutr[k]
;
13.
cout
\n
;
14.
}
1.2希尔排序
基本思想是:先将整个待排序记录序列切割成若干个子序列,在在序列内分别进行直接插入排序,待整个序列基本有序时,再对全体记录进行一次直接插入排序。
图解:
代码实现:
[cpp] viewplain copy
1.
spanstyle=
font-size:14px;
//希尔排序
2.
voidShellSort(
intr[],
intn)
{
inti;
标准文案
实用文档
intd;
intj;
7. for (d=n/2;d=1;d=d/2) //以增量为d进行直接插入排序
{
9. for (i=d+1;in;i++)
{
11.
r[0]=r[i];
//
暂存被插入记录
12.
for
(j=i-d;j0r[0]r[j];j=j-d)
13.
r[j+d]=r[j];
//
记录后移d个位置
14.
r[j+d]=r[0];
}
}
for(i=1;in;i++)
18.
coutr[i]
;
19.
cout
\n
;
}/span
互换排序
2.1起泡排序
起泡排序是互换排序中最简单的排序方法,其基本思想是: 两两比较相邻记录的重点码,
如果反序则互换,直到没有反序的记录为止。
图解:
标准文案
实用文档
代码实现:
[cpp] viewplain copy
1.
spanstyle=font-size:14px;
//起泡排序
2.
voidBubbleSort(
intr[],
intn)
{
inttemp;
intexchange;
intbound;
7.
exchange=n-1;
//
第一趟起泡排序的范围是
r[0]到
r[n-1]
8.
while(exchange)
//
仅当上一趟排序有记录互换才进行本趟
排序
{
bound=exchange;
exchange=0;
12.
for
(intj=0;jbound;j++)
//一趟起泡排序
13.
if
(r[j]r[j+1])
{
标准文案
实用文档
temp=r[j];
r[j]=r[j+1];
r[j+1]=temp;
18. exchange=j; //记录每一次发生记录互换的位置
}
}
for(inti=0;in;i++)
22.
coutr[i]
;
23.
cout
\n
;
24.
}/span
2.2迅速排序
基本思想:经过一趟排序将要排序的数据切割成独立的两部分,其中一部分的所有数据都比
此外一部分的所有数据都要小, 然后再按此方法对这两部分数据分别进行迅速排序, 整个排
序过程能够递归进行,以此达到整个数据变成有序序列。
图解:
标准文案
实用文档
代码实现:
[cpp] viewplain copy
//迅速排序一次区分
2. int Partition( int r[], int first, int end)
{
4. int i=first; //初始化
5. int j=end;
标准文案
实用文档
inttemp;
while(ij)
{
10.
while
(ijr[i]=r[j])
11.
j--;
//右侧扫描
12.
if(ij)
{
14. temp=r[i]; //将较小记录互换到前面
r[i]=r[j];
r[j]=temp;
i++;
}
19.
while
(ijr[i]=r[j])
20.
i++;
//左侧扫描
21.
if(ij)
{
temp=r[j];
r[j]=r[i];
25.
r[i]=temp;
//将较大记录互换到后边
26.
j--;
}
}
29. return i; //i 为轴值记录的最终位置
}
//迅速排序
33. void QuickSort( int r[], int first, int end)
{
if(firstend)
36.
{
//
递归结束
37.
intpivot=Partition(r
您可能关注的文档
最近下载
- 贵州省2025年中考化学试题.pdf VIP
- 暖通安装工程施工工艺标准(159页 附图丰富).pdf
- 专题05 30天熟记中考课标1600词(Day 25~Day 30)(知识清单)(背诵版).docx VIP
- GJB9001C-2017内审员培训教材.pptx VIP
- 2023年陕西省直遴选笔试真题汇编含答案解析(夺冠).docx VIP
- 医院肝胆胰脾外科2025年年底工作总结及2026年工作计划.docx VIP
- 可控核聚变系列研究(一):聚变启航,未来已来.pdf VIP
- 卷烟物流配送中心建设项目规划设计控制指标国家局.pdf VIP
- 16G362 钢筋混凝土结构预埋件.pdf
- 《人工智能技术基础》课件全套 第1--10章 人工智能简介--- 机器学习方法.pdf
原创力文档

文档评论(0)