- 5
- 0
- 约1.3万字
- 约 39页
- 2023-04-07 发布于广东
- 举报
;第10章 排 序;直接插入排序 ;[算法10.1] 直接插入排序算法
void D_InsertSort ( Elemtype R[ ], int n)
{ // 对记录序列R[1..n]作直接插入排序
int i;
for ( i=2; i=n; ++i )
if (R[i].keyR[i-1].key) //小于时,需要R[i-1]插入有序表适当位置
{ R[0] = R[i]; // 复制为监视哨
for ( j=i-1; R[0].key R[j].key; --j )
R[j+1] = R[j]; // 记录后移
R[j+1] = R[0]; // 插入到正确位置
}
};例10.1 设一组关键码为{8,3,2,5,9,1,6},按递增的顺序进行排序,则基本过程如图10.1所示:
;折半插入排序 ;[算法10.2] 折半查找算法描述
void B_InsertionSort (Elemtype R[ ], int n) {
// 对记录序列R[1..n]作折半插入排序
int i, low, high , mid;
for ( i=2; in; ++i )
{ R[0] = R[i]; // 将R[i]暂存到R[0]
low = 1;
high = n-1;
while (low=high)
{ // 在R[low..high]序列中寻找折半查找插入的位置
m = (low+high)/2; // 折半
if (R[0].key R[m].key)
high = mid-1; // 插入点在低半区
else low = mid+1; // 插入点在高半区
}
for ( j=i-1; j=high+1; --j ) // high+1为插入位置
R[j+1] = R[j]; // 记录后移
R[high+1] = R[0]; // 插入记录
}
};希尔排序(又称缩小增量排序) ;例10.2 已知排序表关键字序列为:49,38,65,97,76,13,27,49,55,04,则希尔排序的排序过程如图10.2所示。;冒泡排序 ;[算法10.4] 冒泡排序的基本算法
void Bubble_Sort(Elemtype R[ ] , int n) {
int i , j , flag;
for(i=1;in;i++) // 共进行n-1趟比较
{ flag=0;
for (j=1;jn-i;j++) // 每趟进行n-i次比较
if (R[j].keyR[j+1].key)
{ R[0]=R[j]; // R[0]作为交换的中间变量
R[j]=R[j+1];
R[j+1]=R[0];
flag=1;
}
if (flag= =0) return; // 若第一趟过后,没有发生交换,则结束循环
}
} ;快速排序 ;例10.3 对关键码序列{43,60,54,17,73,3,1,55}实施一趟快速排序,其排序过程如图10.3所示。;[算法10.5] 快速排序一次划分算法的描述
int Partition (Elemtype R[ ] , int low , int high) {
// 交换记录子序列R[low..high]中的记录,使枢轴记录到位,并返回其所
// 在位置,此时,在它之前(后)的记录均不大(小)于它
R[0].key= R[low].key;// 用子表的第一个记录作枢轴记录
privotkey=R[low].key;
while (lowhigh) { // 从表的两端交替地向中间扫描
while (lowhigh R[high].key=pivotkey)
--high;
if (lowhigh) // 将比枢轴记录小的记录交换到低端
{ R[low]=R[high];
low++;
}
while (lowhigh R[low].key=pivotkey)
++low;
if (lowhigh) // 将比枢轴记录大的记录交换到高端
{R[high]=R[low];
high--;
}
}
R[low]=R[0]; // 将比枢轴记录到位
return low; // 返回枢轴所在位置
} // Partition;[算法10.6] 快速排序的算法描述
void QSort (Elemtype R[ ], int s, int t) {
// 对记录序列R[s..t]进行快速排序
if (s t) { // 长度大于1
您可能关注的文档
- 员工训练与开发.ppt
- 怎样做一名合格的营销主管.ppt
- 职业技能实训平台形成性考核-工商管理-资源与运营管理.ppt
- 中国事业单位人事制度改革趋势分析.ppt
- 中医药与营养.ppt
- 注射剂临床应用的溶媒选择及其他注意事项.ppt
- GIS数字图像处理.ppt
- VIP专属语法新思维课程.pptx
- 大豆-复习资料.ppt
- 大客户的服务与营销技巧.ppt
- 七年级语文上册期末模拟试卷1(解析版).docx
- 七年级语文上册期末模拟试卷1(原卷版).docx
- 七年级语文上册期末模拟试卷2(原卷版).docx
- 七年级语文上册期末模拟试卷2(解析版).docx
- 期末测试卷(二)(解析版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(三)(解析版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(二)(原卷版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(三)(原卷版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(一)(原卷版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(一)(解析版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
原创力文档

文档评论(0)