您的当前位置:首页正文

实验8:排序的基本实验

2024-08-01 来源:步旅网
实验八: 排序的基础实验

完成起泡、直接插入排序、 简单选择排序、快速排序、希尔排序和堆排序 中的三种排序方法,写成函数的形式.

利用插入排序、起泡排序和选择排序完成对数字序列的排序。 #include\"stdafx.h\" #include #include #include typedef struct {

int elem;

}num;

void print(num *L,int n) { }

//1:插入排序

void binsertsort(num *L,int n) int i;

for(i=1;i<=n;i++)

printf(\"%5d\printf(\"\\n\");

{ }

//2:起泡排序

void bubble(num *L,int n) int i,m,j,low,high; for(i=2;i<=n;i++) {

L[0]=L[i]; low=1; high=i-1; while(low<=high) { }

m=(low+high)/2; if(L[0].elemfor(j=i-1;j>=high+1;j--) L[j+1]=L[j]; L[high+1]=L[0]; }

{ }

//3:选择排序

void selectsort(num *L,int n) {

int i,j,temp; for(i=1;i<=n;i++) {

for(j=i+1;j<=n;j++) int i,j,t; for(i=1;ifor(j=2;j<=n-i+1;j++) { }

if(L[j].elemt=L[j].elem;

L[j].elem=L[j-1].elem; L[j-1].elem=t;

}

}

{ }

if(L[i].elem>L[j].elem) { }

temp=L[i].elem; L[i].elem=L[j].elem; L[j].elem=temp;

void main() {

int i,t,n,m; num *list,*sqlist;

printf(\"请输入排序数个数:\"); scanf(\"%d\

list=(num *)malloc((n+1)*sizeof(num)); printf(\"排序的输入数据为:\"); for(i=1;i<=n;i++) {

scanf(\"%d\

}

list[i].elem=t; }

printf(\"插入排序的结果为:\\n\"); binsertsort(list,n); print(list,n);

printf(\"起泡排序的结果为:\\n\"); bubble(list,n); print(list,n);

printf(\"选择排序的结果为:\\n\"); selectsort(list,n); print(list,n);

因篇幅问题不能全部显示,请点此查看更多更全内容