排序实验程序 联系客服

发布时间 : 星期四 文章排序实验程序更新完毕开始阅读ec8819925a8102d277a22f95

#include \#include \#include \#include \#include \

#define OK 1 #define ERROR 0 #define OVERFLOW -2 #define TRUE 1 #define FALSE 0 #define NULL 0

#define MAXSIZE 20

typedef int Status; typedef int KeyType; typedef struct{ KeyType key; int otherinfo; }RedType; typedef struct{ RedType r[MAXSIZE+1]; int length; }SqList;

void OutPut(SqList L){//输出顺序表 int i; for(i=1;i<=L.length ;i++) cout<

Status inittable(SqList &L,int n){ //初始化顺序表函数,n为表中数据元素的个数,产生[0,500]的随机数存入表中 int i,j,flag; KeyType e; L.length =n; for(i=1;i<=n;i++){ flag=0; e=rand()P0; for(j=1;j

L.r [j].key=e; else i--; } return OK; }

void InsertSort(SqList &L){//直接插入排序 int i,j; for(i=2;i<=L.length;i++) if(L.r[i].key

void BInsertSort(SqList &L){//折半插入排序 int low,high,m,i,j; for(i=2;i=high+1;j--) L.r[j+1].key=L.r[j].key; L.r[high+1].key=L.r[0].key; } }

void InsertSort2(SqList L,RedType d[],int &first,int &final){//2_路插入排序 int i,j; first=1; final=1; d[1].key =L.r[1].key; for(i=2;i<=L.length;i++){ if(L.r[i].key >=d[1].key ){ for(j=final;L.r[i].key

d[first].key =L.r[i].key ; } else{ for(j=first;L.r[i].key>d[j].key && j<=L.length ;j++) d[j-1].key =d[j].key ; d[j-1].key =L.r[i].key ; first--; } } } }

void OutPut2(RedType d[],int first,int final,int length){//输出2_路插入排序结果 int i; for(i=first;i<=length;i++) cout<

//希尔排序

void ShellInsert(SqList &L,int dk){ int i,j; for(i=dk+1;i<=L.length ;i++) if(L.r[i].key 0 && L.r[0].key

void ShellSort(SqList &L,int dlta[],int t){ int k; for(k=0;k

void BubbleSort(SqList &L){//起泡排序 int n,i,flag; KeyType e; for(n=1;nL.r[i+1].key ){ e=L.r[i].key ;

L.r[i].key =L.r[i+1].key ; L.r[i+1].key =e; flag=1; } if(flag==0) return; } }

//快速排序

int Partition(SqList &L,int low,int high){ KeyType pkey; L.r[0].key =L.r[low].key ; pkey=L.r[low].key ; while(low=pkey) --high; L.r[low].key =L.r[high].key ; while(low

void QSort(SqList &L,int low,int high){ int ploc; if(low

void QuickSort(SqList &L){ QSort(L,1,L.length ); } //快速排序 //简单选择排序

int SelectMinKey(SqList L,int i){ int min,j; min=i; for(j=i+1;j<=L.length ;j++) if(L.r[j].key

void SelectSort(SqList &L){ int i,j; KeyType e;