数据结构实验快速排序汇编

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告实验名称排序

课程名称数据结构与算法实验

|

|

专业班级:信息安全

学号:

姓名:

一、实验目的

掌握快速排序

二、实验内容

1、快速排序

编写程序,实现快速排序。从键盘上输入10个整数,存放在数组中,然后用快速排序法对其从小到大进行排序,并输出排序结果。

2、堆排序

编写程序,实现堆排序。从键盘上输入10个整数,存放在数组中,然后用堆排序法对其从小到大进行排序,并输出排序结果。

三、主要算法与结构

//快速排序

int QuickSort(int a[],int l,int r)

{

int pivot; //枢轴

int i=l;

int j=r;

int tmp;

pivot=a[(l+r)/2];//取数组中间的数为枢轴

do {

while (a[i]

while (a[j]>pivot) j--; // j左移

if (i<=j)

{

tmp=a[i];

a[i]=a[j];

a[j]=tmp; //交换a[i]和a[j]

i++;

j--;

}

}

//堆排序

void sift (int a[],int size ,int p)

{

int tmp= a[p];

int child=2*p+1;

while(child

{

if((child

child++;

if(tmp

{

a[p]=a[child];

p=child;

child=2*p+1;

}

else break;

}

a[p]=tmp;

}

void heapsort( int a[], int n)

{ int i, tmp;

for(i=n/2-1;i>=0;i--) sift(a, n,i);

for( i=n-1;i>0;i--)

{

tmp=a[0];

a[0]=a[i];

a[i]=tmp;

sift(a, i,0);

}

}

四、实验代码

//快速排序

#include

#define MAX 10

int QuickSort(int a[],int l,int r)

{

int pivot; //枢轴

int i=l;

int j=r;

int tmp;

pivot=a[(l+r)/2];//取数组中间的数为枢轴

do {

while (a[i]

while (a[j]>pivot) j--; // j左移

if (i<=j)

{

tmp=a[i];

a[i]=a[j];

a[j]=tmp; //交换a[i]和a[j]

i++;

j--;

}

} while(i<=j);

if (l

if (i

return 1;

}

/*********************************************/ int main()

{

int array[MAX];

int i;

cout<<"请输入"<

for (i=0;i

cin>>array[i];

QuickSort(array,0,MAX-1);

cout<<"快速排序后:"<

for (i=0;i

cout<

cout<

return 0;

}

//堆排序

#include

#define MAX 10

using namespace std;

void sift (int a[],int size ,int p)

{

int tmp= a[p];

int child=2*p+1;

while(child

{

if((child

child++;

if(tmp

{

a[p]=a[child];

p=child;

child=2*p+1;

}

else break;

}

a[p]=tmp;

}

void heapsort( int a[], int n)

{ int i, tmp;

for(i=n/2-1;i>=0;i--) sift(a, n,i);

for( i=n-1;i>0;i--)

{

tmp=a[0];

a[0]=a[i];

a[i]=tmp;

sift(a, i,0);

}}

void main ()

{ int i;

int a[MAX];

cout<<"请输入"<

cin>>a[i];

heapsort(a,MAX);

cout<<"经堆排序后:"<

for( i=0;i

cout<

}

五、实验结果

//快速排序

//堆排序

相关文档
最新文档