西南交大机算方法作业

  • 格式:doc
  • 大小:224.00 KB
  • 文档页数:12

算法分析与设计

西南交通大学

《算法设计与分析》

指导教师:尹治本

学院:信息科学与技术学院

班级:软件一班

姓名:***

学号:***

2013年11月

算法分析与设计

作业一、8-皇后问题

1、实验代码:

#include "stdio.h"

int count;

int queen[10], column[20], left[20], right[20];

void prt1()

{

int j;

printf("No.%d ", ++count);

for (j = 1; j <= 8; j++) printf("%3d", queen[j]);

printf("\n");

}

void meun(int i)

{

int j;

for (j = 1; j <= 8; j++)

if (column[j] && left[i - j + 8] && right[i + j])

{

queen[i] = j; column[j] = 0;

left[i - j + 8] = 0; right[i + j] = 0;

if (i<8) meun(i + 1);

else prt1();

column[j] = left[i - j + 8] = right[i + j] = 1;

}

}

void main()

{

int i;

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

column[i] = left[i] = right[i] = 1;

count = 0; meun(1);

}

2、实验结果 算法分析与设计

算法分析与设计

作业二:Quicksort 快速排序算法

1、 实验代码:

#include

#include

using namespace std;

int Partition(int arry[],int start,int end)

{

int pivot=arry[start];

while(start

{

while(arry[end]>pivot&&start

end--;

arry[start]=arry[end];

while(arry[start]

start++;

arry[end]=arry[start];

}

arry[start]=pivot;

return start;

}

void QSort(int arry[],int start,int end)

{

if(start

{

int pivotkey=Partition(arry,start,end);

QSort(arry,start,pivotkey-1);

QSort(arry,pivotkey+1,end);

}

}

void QuickSort(int arry[],int len)

{

QSort(arry,0,len);

}

void main()

{

int arry[10];

cout<<"输入10个数:"<

for(int i=0;i<10;i++)

{

cin>>arry[i];

}

cout<

QuickSort(arry,10);

cout<<"排序后:"<

for(int i=0;i<10;i++)

{

cout<

}

cout<

}

2、 实验结果

算法分析与设计

作业三、Heapsort 堆排序算法

1、 实验代码:

#include

#include

#define N 10

using namespace std;

void BuildMaxHeap(int * array);

void HeapSort(int * array);

void MaxHeapify(int * array,int n);

int HeapSize;

int main()

{

int array[N];

cout<<"请输入10个数:";

for(int i=0 ; i

{

cin>>array[i];

}

cout<

HeapSort(array);

for(int k=0;k

{

cout<

}

cout<

return 0;

}

void HeapSort(int * array)

{

BuildMaxHeap(array);

for(int i=N-1 ; i>=0 ; i--)

{

int temp = array[0];

array[0] = array[i];

array[i] = temp;

HeapSize -= 1;

MaxHeapify(array,1);

}

}

void BuildMaxHeap(int * array)

{

HeapSize = N; 算法分析与设计