毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 课程设计 >> 正文

几种常见的排序-数据结构课程设计

更新时间:2007-10-20:  来源:毕业论文
几种常见的排序-数据结构课程设计|数据结构课程设计

/*
Name:排序
Author:wujilin
Description:几种常见的排序方法
Date: 19-07-06 15:41
Copyright:wujilin
*/

#include<stdio.h>
#include<stdlib.h>
#define M 11

void InsertSort(int a[])//插入排序
{
int i, j;

for (i = 2; i < M; i++)
{
if(a[i] < a[i-1])
{
a[0] = a[i];
a[i] = a[i-1];
for (j = i - 2; j > 0 && a[j] > a[0]; j--)
{
a[j+1] = a[j];
}
a[j+1] = a[0];
}
}

printf("进行插入排序:");
for ( i = 1 ; i < M; i++)
{
printf("%4d",a[i]);
}
printf("\n");
}


void BinarySort(int a[])//折半排序
{
int i, j, m, low, high;

for (i = 2; i < M; i++)
{
a[0] = a[i];
low = 1;
high = i - 1;

while (low <= high)
{
m = (low + high)/2;
if (a[0] > a[m])
{
low = m + 1;
}
else
{
high = m - 1;
}
}
for ( j = i - 1; j > high  ; j--)
{
a[j+1] = a[j];
}
a[j+1] = a[0];
}

printf("进行折半排序:");
for (i = 1; i < M ; i++)
{
printf("%4d",a[i]);
}
printf("\n");
}

void Bubble(int a[])//冒泡排序
{
int i, j, temp;
int flag = 1;

for ( i = 1; i < 10; i++)
{
flag = 0;
for (j = i + 1; j <= 10; j++)
{
if (a[i] > a[j])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
flag = 1;
}
}
}

printf("进行起泡排序:");
for ( i = 1; i <= 10; i++)
{
printf("%4d", a[i]);
}
printf("\n");
}


void HeapSort(int a[])//堆排序
{
int i;


for (i = (M-1)/2; i > 0 ; i--)
{
HeapAdjust(a, i, M-1);
}
for (i = M - 1 ; i > 0 ; )
{
a[0] = a[i];
a[i] = a[1];
a[1] = a[0];
i--;
HeapAdjust(a, 1, i);
}
printf("进行堆排序:");
for ( i = 1; i < M ; i++)
{
printf("%4d", a[i]);
}
printf("\n");
}

int HeapAdjust(int a[], int i, int n)
{
int j, k;
int flag = 1;

j = 2 * i;
k = a[i];
while (j <= n && flag == 1)
{
if (j < n && a[j] < a[j+1])
{
j++;
}
if (k >= a[j])
{
flag = 0;
}
else
{
a[j/2] = a[j];
j *= 2;
}
}
a[j/2] = k;

return 0;
}

void ShellSort(int a[])//希尔排序
{
int k, i, j, temp;

k = M-1/2;
for (; k > 0; k--)
{
for (i = k + 1; i <= 10; i++)
{
j = i - k;
while (j > 0)
{
if (a[j] > a[i])
{
temp = a[j];
a[j] = a[i];
a[i] = temp;
}
j = j - k;
}
}
}

printf("进行希尔排序:");
for ( i = 1; i < M; i++)
{
printf("%4d",a[i]);
}
printf("\n");
}

[1] [2] 下一页

几种常见的排序-数据结构课程设计下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©lwfree.cn 六维论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。