云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 数据结构课程设计排序算法总结

数据结构课程设计排序算法总结

  • 62 次阅读
  • 3 次下载
  • 2025/5/6 5:12:21

源代码:

#include #include

typedef struct //顺序表存储结构 {

int * elem; int length; }SqList;

int main(void) {

SqList L; SqList L1;

void InsertSort(SqList &L); void BInsertSort(SqList &L); 序

void BubbleSort(SqList &L); void SelectSort(SqList &L); 序

void QuickSort(SqList &L); 序

void QSort(SqList &L,int low,int high); int Partition(SqList &L,int low,int high);

void HeapSort(SqList &L); void HeapAdjust(SqList &L,int s,int m);

void MergeSort(SqList &L); 序

void MSort(SqList L,SqList &L1,int s,int t);

void Merge(SqList L,SqList &L1,int i,int m,int n);

int n; int * p;

printf(\请输入顺序表的长度:\ scanf(\

if((p=(int *)malloc((n+1)*sizeof(int)))==0) 存储空间 { printf(\.\\n\ exit(1); }

//直接插入排序 //折半插入排 //冒泡排序 //简单选择排 //快速排 //堆排序 //归并排//动态分配顺序表 L.elem=p; L.length=n;

if((p=(int *)malloc((n+1)*sizeof(int)))==0) //动态分配顺序表存储空间 { printf(\.\\n\ exit(1); }

L1.elem=p; L1.length=n;

printf(\请输入%d个整数:\\n\ 排序的数据

for(int i=1;i<=L.length;i++) scanf(\

printf(\选择排序算法:\\n\ printf(\直接插入排序\\n\ printf(\折半插入排序\\n\ printf(\冒泡排序\\n\

printf(\简单选择排序\\n\ printf(\快速排序\\n\

printf(\堆排序\\n\ printf(\归并排序\\n\

int change=0;

scanf(\

switch(change) { case 1: InsertSort(L);break;

case 2: BInsertSort(L);break; case 3: BubbleSort(L);break; case 4: SelectSort(L);break; case 5: QuickSort(L);break; case 6: HeapSort(L);break; case 7: MergeSort(L);break; default:break; }

//输入一组待 printf(\排序后为:\

for(i=1;i<=L.length;i++) printf(\ printf(\

return 0; }

void InsertSort(SqList &L) {

int i=0,j=0;

for(i=2;i<=L.length ;i++) if(L.elem[i]L.elem[0];j--) L.elem [j+1]=L.elem [j]; L.elem [j+1]=L.elem[0]; } }

void BInsertSort(SqList &L) {

int i=0,j=0,low=0,high=0,m=0; for(i=2;i<=L.length ;i++) { L.elem[0]=L.elem [i]; low=1; high=i-1; while(low<=high) { m=(low+high)/2; if(L.elem [0]>L.elem [m]) low=m+1; else high=m-1; } for(j=i-1;j>=high+1;j--) L.elem [j+1]=L.elem [j]; L.elem [high+1]=L.elem[0]; } }

//复制为哨兵

void BubbleSort(SqList &L) {

int i=0,j=0;

for(i=L.length;i>=2;i--) for(j=1;jL.elem [j+1]) { L.elem[0]=L.elem [j]; L.elem [j]=L.elem [j+1]; L.elem [j+1]=L.elem[0]; } } }

void SelectSort(SqList &L) {

int index=0;

for(int i=1;i<=L.length-1 ;i++) { index=i; for(int j=i+1;j<=L.length ;j++) if(L.elem [j]

//快排

int Partition(SqList &L,int low,int high) {

//将L.elem[low...high]一分为二

int pivot=0; 作枢轴

pivot=L.elem[low]; while(low=pivot)

//用子表第一个记录

搜索更多关于: 数据结构课程设计排序算法总结 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

源代码: #include #include typedef struct //顺序表存储结构 { int * elem; int length; }SqList; int main(void) { SqList L; SqList L1; void InsertSort(SqList &L); void BInsertSort(SqList &L); 序 void BubbleSort(SqList &L);

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com