排序实验报告
{
int x,i,j;
x=L->data[s];
i=s;j=t;
while(i!=j)
{
while(i<j &&L->data[j]>x) j--;
if(i<j) {L->data[i]=L->data[j];i++;}
while(i<j &&L->data[j]<x) i++;
if(i<j) {L->data[j]=L->data[i];j--;}
实验报告
姓名:课程名称:数据结构
院(系):计算机学院专业/年级:应用技术)
实验五——内部排序
一、实验目的
1.掌握常见内部排序的实现方法;
2.深入理解各种排序方法的效率。
二、实验预习内容
请在上机前认真阅读教材及实验指导书,并在以下空白处填写相应的内容。
1.直接插入排序。
1)请简述直接插入排序算法的基本思想。
}
L->data[i]=x;
cutpoint=i;
}
void quicksort(seqlist *L,int s,int t)
{
int i;
if(s<t)
{
partition(L,s,t,i);
quicksort(L,s,i-1);
quicksort(L,i+1,t);
}
}
void initial_list(seqlist *L)
printf("快速排序结果:");
for(i=1;i<=L->listlen;i++)
{
printf("%3d",L->data[i]);
}
putchar('\n');
return 0;
}
3.实验结果。
四、实验总结(实验过程中出现的问题、解决方法、结果或其它);=L->listlen;i++)
{
temp=L->data[i];
for(int j=i-1;L->data[j]>temp;j--)
L->data[j+1]=L->data[j];
L->data[j+1]=temp;
}
}
void partition(seqlist *L,int s,int t,int &cutpoint)
{
L->listlen=0;
}
int main()
{
seqlist *L;
int n;
L=(seqlist *)malloc(sizeof(seqlist));
initial_list(L);
printf("input data(end of -1):");
scanf("%d",&n);
for(int i=1;n!=-1;i++)
{
L->data[i]=n;
L->listlen++;
scanf("%D",&n);
}
insert_sort(L);
printf("直接插入排序结果:");
for(i=1;i<=L->listlen;i++)
{
printf("%3d",L->data[i]);
}
putchar('\n');
quicksort(L,1,L->listlen);
2)请写出直接插入排序算法。
3)直接插入排序算法是稳定的排序算法吗?
2.快速排序。
1)请简述快速排序算法的基本思想。
2)请写出快速排序算法。
3)快速排序算法是稳定的排序算法吗?
三、上机实验
1.实验内容。
1)用顺序表作存储结构,输入一组数据,用直接插入法对其进行排序;
1)用顺序表作存储结构,输入一组数据,用快速排序法对其进行排序。
2.实验源程序。
#include <stdio.h>
#include <malloc.h>
#define maxsize 100
typedef int element;
typedef struct
{
element data[maxsize];
int listlen;
}seqlist;
void insert_sort(seqlist *L)