查找排序实验四作业

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

查找排序实验四作业

试验四:查找、排序

一、实验描述:

1. 简单选择排序算法验证

实验目的

⑴掌握简单选择排序算法的基本思想;

⑵ 掌握简单选择排序算法的实现方法;

⑶ 验证简单选择排序算法的时间性能。

实验内容

对一组数据进行简单选择排序(按升序排列)。

算法思想与设计

1. 采用单链表进行排序操作;

2. 简单选择排序的基本思想:对待排序进行若干趟处理,通过n-i次关键字的比较,从n-i+1个记录中选出关键字最小记录和第i(1<=i<=n)个记录进行交换,这样一趟处理就能确定一个数的

位置,对n个数如果确定n-1个数的位置,则这n 个数就排序成功。

3. 选择排序算法的时间复杂度为O(n2)。并且排序是稳定的。

算法设计

1.数据结构设计

使用一个简单的链表作为选择排序的操作对象。

//单链表结构体定义

class Si ngleL ink{

private int idata;

public int Data;

{

get{return idata;}

set{idata=value;} }

public Sin gleL ink n ex t; public Sin gleL in k(){

idata = -1;

n ext =n ull;

} public Sin gleL in k(i nt data){ idata = -1;

n ext = nu II;

}

}

2. 算法流程图:

2.1初始化单链表

循环在单

链表尾部

初始化完

2.2简单选择排序

i++ 否

排序数据中

返回

3. 代码算法实现

3.1单链表初始化

Randomr= new Random();〃从1 〜100 间产生数

list.clear();〃清空单链表

for(i nt i = 0; i < dlbl on g;i++){

list.I nsert(r.Next(100));〃节点插入操作f++;

}

TextBox1.Text = list.Disply();〃返回整个单链表显示

3.2单链表选择排序

y = head;

flag = head .n ex t;

int n = 0,i,j,temp=0,biaoji;

y = head .n ex t;

p = head .n ex t;

q = head .n ex t;

for(i = 0 ; i < n -1;i++){

flag = p;

q = p;

biaoji = q.Data;

for(j=i;j< n-1;j++){

if(q.n ext.Data < biaoji){

flag = q.n ex t;

fiaoji = q.n ext.Data;

}

q=q.n ex t;

}

temp = p.Data;

p.Data = flag.Data;

flag.Data = temp;

P = p.n ex t;

}

retur n true;

4. 测试

采用黑盒测试方法测试。

返回相应结输入所需单链表长度及初始化序列;

5. 测试总结

反复测试符合设计要求,未出现异常;软件运

行正常

相关文档
最新文档