- 13
- 0
- 约1.94千字
- 约 15页
- 2017-08-06 发布于河南
- 举报
简单选择排序和堆排序
3.3.3 简单选择排序与堆排序
1. 简单选择排序;输入:无序序列P(1:n)。
输出:有序序列P(1:n)。 PROCEDUDE SELESORT(P,n) FOR i=0 TO n-2 DO { k=i FOR j=i+1 TO n-1 DO IF P(j)<P(k) THEN k=j IF (k≠i) THEN
{ d=P(i); P(i)=P(k); P(k)=d } } RETURN; selesort(p,n)int n; ET p[];{ int i,j,k; ET d; for (i=0; i<=n-2; i=i+1) { k=i; for (j=i+1; j<=n-1; j=j+1) if (p[j]<p[k]) k=j; if (k!=i) { d=p[i];p[i]=p[k];[k]=d;} } return;};2. 堆排序堆的定义:具有n个元素的序列(h1,h2,…,hn),当且仅当满足(i=1,2,…,n/2)时称之为堆。由堆的定义可以看出,堆顶元素(即第一个元素)必为最大项。;或具有n个元素的序列(h1,h2,…,hn),当且仅当满足(i=1,2,…,n/2)时称之为堆。;序列(91,85,53,36,47,30,24,12)是一个堆;调整建堆
在一棵具有n个结点的完全二叉树(用一维数组
H(1:n)表示)中,假设结点H(m)的左右子树均
为堆,现要将以H(m)为根结点的子树也调整为堆。;;;;堆排序
(1)首先将一个无序序列建成堆。
(2)然后将堆顶元素(序列中的最大项)与堆中最后
一个元素交换(最大项应该在序列的最后)。
不考虑已经换到最后的那个元素,只考虑前
n-1个元素构成的子序列,显然,该子序列已
不是堆,但左、右子树仍为堆,可以将该子序列
调整为堆。
反复做第(2)步,直到剩下的子序列为空为止。;调整建堆输入:完全二叉树数组H(1:n)。其中结点H(m)的左右子树均为堆。输出:以H(m)为根结点的子树为堆。 PROCEDURE SIFT(H,n,m) t=H(m); j=2m WHILE (j≤n) DO { IF (j<n)and(H(j)<H(j+1)) THEN j=j+1 IF (t<H(j)) THEN { H(m)=H(j); m=j; j=2m } else j=n+1 } H(m)=t RETURN;堆排序输入:无序序列H(1:n)。输出:无序序列H(1:n)。PROCEDURE HEAPSORT(H,n)k=n/2FOR i=k TO 1 BY -1 DO
SIFT(H,n,i) [无序序列建堆]FOR i=n TO 2 BY -1 DO {t=H(1);H(1)=H(i);H(i)=t[堆顶元素换到最后] SIFT(H,i-1,1) [调整建堆] }RETURN; heapsort(p,n)int n; ET p[];{ int i,k; ET t; k=n/2; for (i=k-1; i>=0; i--) sift(p,n-1,i); /*无序序列建堆*/ for (i=n-1; i>=1; i--) { t=p[0]; p[0]=p[i]; p[i]=t; /*堆顶元素换到最后*/ sift(p,i-1,0); /*调整建堆*/ } return;}; static sift(h,n,m)int n,m; ET h[];{ int j; ET t; t=h[m]; j=2*(m+1)-1; while (j<=n) { if ((j<n)(h[j]<h[j+1])) j=j+1; if (t<h[j]) { h[m]=h[j]; m=j; j=2*(m+1)-1;} else j=n+1; } h[m]=t; return;}
您可能关注的文档
- 环己基氨基磺酸钠等22种扩大使用范围、用量食品添加剂.doc
- 环氧AB胶黄变成因分析和解决方法.doc
- 环氧导电腻子用途与数据.doc
- 环氧树脂与固化剂混合比例计算新解.doc
- 环氧铁红和环氧富锌.doc
- 环氧树脂薄涂地板施工方案和报价.doc
- 环网供电和环网柜配置.doc
- 理论力学概念整理-点合成运动2.ppt
- 牛粪用途.ppt
- 理论力学第一章 静力学基本概念和受力图.ppt
- 2025-2026学年科普版七年级下册英语Unit7 Being a Smart Shopper素养测评卷(含答案).docx
- 2025-2026学年科普版七年级下册英语Unit10 Lending a Helping Hand素养测评卷(含答案).docx
- 2025-2026学年科普版七年级下册英语Unit11 Rules Matter素养测评卷(含答案).docx
- 2025-2026学年科普版七年级下册英语Unit12 Better Together素养测评卷(含答案).docx
- 2026年中考英语语法选择专题训练(含答案).docx
- 2026中考语文二轮学思并重,涵养君子之德论语十二章、虽有佳肴、大道之行也.docx
- 中考文言文常见文化常识梳理.docx
- 中考语文二轮:内修君子德外尽忠臣心诚子书出师表修身立德主题学习.docx
- 中考语文二轮:不一样的求学路一样的成长梦送东阳马生序劝学主题学习.docx
- 中考语文二轮:《陋室铭》《爱莲说》托物寓意主题学习.docx
最近下载
- 质量检验员培训课件.ppt VIP
- 一种预制装配式风机基础、风机及施工方法.pdf VIP
- 2023年岳阳市初中学业水平考试数学试卷参考答案 .pdf VIP
- 2026年大庆医学高等专科学校单招职业技能考试题库及答案详解(全优).docx VIP
- 《养老机构智慧运营与管理》教学设计——项目8 养老机构的风险管理与安全管理.docx VIP
- 2025年国际注册内部审计师(CIA)资格考试(内部审计基础)历年参考题库含答案详解.docx VIP
- 北师大版高一下学期数学(必修二)《1.2 任意角》同步练习题及答案.docx VIP
- 健美操教学计划与教案.docx VIP
- 新闻学西方媒介理论.pptx VIP
- 公消(2016)113号-关于加强超大城市综合体消防安全工作的指导意见标准.pdf VIP
原创力文档

文档评论(0)