#include "setting.h"
/*------------------------------------------1.快速排序--------------------------------------*/
void QKSort(SqList &L,int low,int high )
{
int pivotloc;
if(low<high)
{
pivotloc=Partition(L, low, high);
QKSort(L, low,pivotloc-1);
QKSort(L, pivotloc+1, high);
}
}
int Partition(SqList &L,int low,int high)
{
int pivotKey;
L.r[0]=L.r[low];
pivotKey= L.r[low].Key;
while ( low<high )
{
while (low< high && L.r[high].Key>=pivotKey ) high--;
if ( low <high )
{
L.r[low]= L.r[high];
low++;
}
while (low<high &&L.r[low].Key<=pivotKey )
low++;
if ( low<high )
{
L.r[high]= L.r[low];
high--;
}
}
L.r[low]= L.r[0];
return low;
}
/*--------------------------------------------2.堆的排序------------------------------------------*/
void HeapAdjust(HeapType &H, int s, int m)
{
int j;
RedType rc;
rc=H.r[s];
for(j=2*s;j<=m;j*=2)
{
if(j<m && LT(H.r[j+1].Key,H.r[j].Key)) ++j;
if(LT(rc.Key,H.r[j].Key)) break;
H.r[s]=H.r[j];
s=j;
}
H.r[s]=rc;
}
void HeapSort(HeapType &H)
{
int i;
RedType t;
for (i=H.length/2; i>0; --i)
{
HeapAdjust(H,i,H.length);
}
for (i=H.length; i>1; --i)
{
t = H.r[1];
H.r[1] =H.r[i];
H.r[i]= t;
HeapAdjust(H,1,i-1);
}
}
/*------------------------------------------3.冒泡排序--------------------------------------*/
void BubbleSort(SqList &L)
{
int n,i,j;
n=L.length;
RedType x;
for ( i=1 ; i<= n-1 ;++i )
{
for ( j=1 ; j<= n-i ; ++j)
if (L.r[j].Key > L.r[j+1].Key )
{
x= L.r[j];
L.r[j]= L.r[j+1];
L.r[j+1]= x;
}
}
}
/*------------------------------------------4.选择排序--------------------------------------*/
void SelectSort(SqList &L)
{
int i,j,k;
RedType x;
for ( i=1 ; i<= L.length-1; ++i)
{
k=i;
for ( j=i+1 ; j<= L.length ; ++j)
if (L.r[j].Key < L.r[k].Key )
k=j;
if ( k!=i)
{
x= L.r[i];
L.r[i]= L.r[k];
L.r[k]=x;
}
}
}
/*------------------------------------------5.直接插入--------------------------------------*/
void InsSort(SqList &L)
{
int i,j;
for (i=2; i<=L.length; i++)
if(LT(L.r[i].Key,L.r[i-1].Key))
{
L.r[0]=L.r[i];
L.r[i]=L.r[i-1];
for(j=i-2;LT(L.r[0].Key,L.r[j].Key);--j)
L.r[j+1]=L.r[j];
L.r[j+1]=L.r[0];
}
}
/*------------------------------------------6.希尔排序--------------------------------------*/
void ShellSort(SqList &L, int dlta[], int t)
{
int k;
void ShellInsert(SqList &, int );
for(k = 0; k < t; k++)
ShellInsert(L, dlta[k]);
}
void ShellInsert(SqList &L, int dk)
{
int i, j;
for(i = dk + 1; i <= L.length; i++)
if(L.r[i].Key <= L.r[i - dk].Key)
{
L.r[0] = L.r[i];
for(j = i - dk; j > 0 && (L.r[0].Key <= L.r[j].Key); j -= dk)
L.r[j + dk] = L.r[j];
L.r[j + dk] = L.r[0];
}
}
/*------------------------------------------7.归并排序--------------------------------------*/
void Merge(RedType SR[], RedType TR2[],int s, int m, int t)
{
int i,j,k;
i=s;
j=m+1;
k=s;
while ( (i<=m)&&(j<=t) )
{
if ( SR[i].Key<=SR[j].Key )
{
TR2[k]=SR[i];
++i;
}
else
{
TR2[k]=SR[j];
++j;
}
++k;
}
while( i<=m )
{
TR2[k]=SR[i];
k++;
i++;
}
while( j<=t)
{
TR2[k]=SR[j];
k++;
j++;
}
}
void MSort(RedType SR[], RedType TR1[], int s, int t )
{
int m;
RedType TR2[20];
if ( s==t )
TR1[s]=SR[s];
else
{
m=(s+t)/2;
MSort(SR,TR2,s, m);
MSort(SR, TR2,m+1,t);
Merge (TR2, TR1,s,m,t);
}
}
void MergeSort ( SqList &L )
{
MSort ( L.r, L.r ,1, L.length);
}
/*------------------------------------------8.折半排序--------------------------------------*/
void BinSort (SqList &L)
{
int i,j;
for ( i=2; i<=L.length ; ++i )
{
if(LT(L.r[i].Key,L.r[i-1].Key))
{
L.r[0]=L.r[i];
L.r[i]=L.r[i-1];
for(j=i-2;LT(L.r[0].Key,L.r[j].Key);--j)
L.r[j+1]=L.r[j];
L.r[j+1]=L.r[0];
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
绝对有你要的,超全排序+数据结构算法动画演示swf
共664个文件
swf:499个
cpp:20个
pdb:20个
需积分: 5 1 下载量 176 浏览量
2023-05-16
12:56:48
上传
评论
收藏 126.68MB ZIP 举报
温馨提示
下这份就够了,绝对有你要的,超全排序+数据结构算法动画演示swf
资源推荐
资源详情
资源评论
收起资源包目录
绝对有你要的,超全排序+数据结构算法动画演示swf (664个子文件)
operation.cpp 4KB
main.cpp 4KB
main.cpp 807B
operation.cpp 751B
operation.cpp 741B
operation.cpp 649B
main.cpp 470B
operation.cpp 463B
main.cpp 427B
main.cpp 425B
main.cpp 423B
main.cpp 419B
main.cpp 418B
main.cpp 409B
main.cpp 407B
operation.cpp 349B
operation.cpp 335B
operation.cpp 325B
operation.cpp 310B
operation.cpp 266B
选择排序 书277.dsp 4KB
快速排序书272.dsp 4KB
希尔排序书272.dsp 4KB
排序 书上265.dsp 4KB
归并 书283页.dsp 4KB
折半插入排序.dsp 4KB
排序.dsp 4KB
简单选择.dsp 4KB
堆排序.dsp 4KB
冒泡法.dsp 4KB
选择排序 书277.dsw 553B
快速排序书272.dsw 551B
希尔排序书272.dsw 551B
排序 书上265.dsw 549B
归并 书283页.dsw 549B
折半插入排序.dsw 549B
简单选择.dsw 541B
堆排序.dsw 537B
冒泡法.dsw 537B
排序.dsw 533B
排序.exe 184KB
选择排序 书277.exe 160KB
快速排序书272.exe 160KB
希尔排序书272.exe 160KB
排序 书上265.exe 160KB
归并 书283页.exe 160KB
折半插入排序.exe 160KB
堆排序.exe 160KB
冒泡法.exe 160KB
简单选择.exe 160KB
show.h 2KB
setting.h 888B
setting.h 408B
setting.h 396B
setting.h 379B
setting.h 322B
setting.h 296B
setting.h 296B
setting.h 283B
setting.h 269B
setting.h 269B
vc60.idb 41KB
vc60.idb 41KB
vc60.idb 41KB
vc60.idb 41KB
vc60.idb 41KB
vc60.idb 41KB
vc60.idb 41KB
vc60.idb 41KB
vc60.idb 41KB
vc60.idb 33KB
排序.ilk 221KB
堆排序.ilk 181KB
归并 书283页.ilk 177KB
排序 书上265.ilk 174KB
快速排序书272.ilk 173KB
希尔排序书272.ilk 172KB
冒泡法.ilk 170KB
折半插入排序.ilk 168KB
选择排序 书277.ilk 168KB
简单选择.ilk 168KB
堆排序.ncb 57KB
排序 书上265.ncb 49KB
希尔排序书272.ncb 49KB
归并 书283页.ncb 49KB
冒泡法.ncb 49KB
折半插入排序.ncb 49KB
排序.ncb 49KB
选择排序 书277.ncb 41KB
快速排序书272.ncb 33KB
简单选择.ncb 33KB
main.obj 25KB
operation.obj 12KB
main.obj 5KB
main.obj 4KB
operation.obj 4KB
main.obj 4KB
main.obj 4KB
main.obj 3KB
main.obj 3KB
共 664 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7
资源评论
CHY_448
- 粉丝: 2
- 资源: 17
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功