课程设计题目 排序

发布 2022-10-02 03:32:28 阅读 4296

排序算法的比较。

系统总体说明:

编程实现选择、冒泡、直接插入、折半插入、希尔、快速和归并等排序算法,并计算每种算法的比较、移动次数。

完成功能的详细说明:

1.要求由键盘输入待排序数据的个数和待排序数据。

2.实现选择、冒泡、直接插入、折半插入、希尔、快速和归并等排序算法。

3.比较每种排序算法在排序码个数相同的情况下,排序过程中排序码的比较次数和元素的移动次数。

4.待排序数据量分别取n=10,30,50,100时,比较同一个算法在排序过程中排序码的比较次数和元素的移动次数。

5.输出结果中,给出各算法按两种方式进行比较后的结果。

#include

#include

#include<>

#define random(x)(rand()%x)

using namespace std;

struct data

int dt[100];

int length;

int compare;

int remove;

class list

public:

static int compare;

static int remove;

data insertsort(data,int);/直接插入排序插入排序分直接插入排序和折半插入排序。

void binsertsort(data);/折半插入排序折半插入排序减少了比较次数而未改变移动次数。

void shellsort(data);/希尔排序希尔排序是对直接插入排序的一种改进算法。

void selectsort(data);/直接选择排序。

void bubblesort(data);/冒泡排序交换排序分冒泡排序和快速排序。

void quicksort(data&,int,int);/快速排序快速排序是对冒泡排序的一种改进

void quicksortx(data);

void towmerge(data&,data&,int,int,int);/二路归并排序算法。

void mergepass(data&,data&,int);/一趟2路归并算法。

void mergesort(data,data);/2-路归并算法。

list(){

void display(data);

void show(int);

data getdata1(int);

data getdata2();

void play1(int);

void play2();

void play3();

int list::remove=0;

int list::compare=0;

data list::getdata1(int length)

data data;

srand((int)time(0));

for(int i=0;i

return data;

data list::getdata2()

data data;

int n=0;

int m;

cout<<"请输入待输入数据的个数:";

cin>>n;

for(int i=0;i

return data;

void list::display(data data)

for(int i=0;i<

data list::insertsort(data data,int h)//直接插入排序。

int n=0;

for(int i=1;i<

if(h==1)

return data;

void list::binsertsort(data data)//折半插入排序

int n=0;

int j=0;

int low=0;

int high=0;

int middle=0;

for(int i=1;i<

for(j=i-1;j>high;j--)

//cout< cout<<"折半插入排序--"

cout<<"比较次数:"<移动次数:"

void list::selectsort(data data)//直接选择排序。

for(int i=0;i<

cout<<"直接选择排序--"

cout<<"比较次数:"<移动次数:"<

// display(data);

void list::bubblesort(data data)//冒泡排序。

int n=0;

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

for(int j=0;j

if(>n=

cout<<"冒泡排序 --

cout<<"比较次数:"<移动次数:"

void list::quicksort(data &data,int s,int t)//快速排序。

int n;

int i=s;

int j=t;

if(j>i)

while(j>i);

quicksort(data,s,i-1);

quicksort(data,j+1,t);

void list::quicksortx(data data)

quicksort(data,0,cout<<"快速排序 --

cout<<"比较次数:"<移动次数:"

void list::shellsort(data data)//希尔排序

int i=0,j=0,gap=0;

int n=0;

gap=while(gap>0)

gap=gap/2;

cout<<"希尔排序 --

cout<<"比较次数:"<移动次数:"

void list::towmerge(data&data1,data&data2,int s,int m,int t)

int i,j,k;

排序课程设计c

c 数据结构课程设计排序。计算机科学与技术专业辽宁科技大学姓名刘。排序综合。利用随机函数产生n个随机整数 20000以上 对这些数进行多种方法进行排序。要求 1 至少采用三种方法实现上述问题求解 提示,可采用的方法有插入排序 希尔排序 起泡排序 快速排序 选择排序 堆排序 归并排序 并把排序后的结果...

课程设计 排序算法比较

电子设计应用软件训练任务。一 训练任务。1 protel 部分。1 熟练掌握protel 软件的使用 2 按要求绘制电路原理图和pcb 版图 能够用自动布线和手动布线相结合 3 能够按要求建立元件库和封装库。2 软件设计部分。按照给定的软件设计任务完成相应的软件设计 见软件设计任务部分 二 基本要求...

课程设计题目

2011年工厂供配电技术课程设计题目。某大型铸造工厂配电一次系统设计。任务书 广东水利电力职业技术学院电力工程系。2011年6月广州。1.原始资料。1.1全厂用电设备情况 1 负荷大小。全厂用电设备总安装容量 6630kw 10kv侧计算负荷总容量 有功功率4921kw 无功功率1512kvar各车...