十万火急!!C++题救救救!!

来源:百度知道 编辑:UC知道 时间:2024/05/27 23:50:55
本人遇到了以下难题,希望各位网友能解答一下,本人将不胜感激!!

题目:起泡、选择、插入排序算法。

设计要求:输入一组int型数据,按照以上3种排序方法进行排序,分别显示排序过程和排序结果。

#include<stdlib.h>
#include<stdio.h>
#include<ctype.h>
#include<time.h>
int n;

void InsertSort(int L[]) {
// 对顺序表L作直接插入排序
int i,j;
for (i = 2; i <= n; ++i)
if (L[i] < L[i-1]) {
L[0] = L[i];
for (j = i-1; L[0] < L[j]; --j)
L[j+1] = L[j];
L[j+1] = L[0];
}
} // InsertSort

void BInsertSort(int L[]) {
// 对顺序表L作折半插入排序
int i,j,high,low,m;
for (i = 2; i <= n; ++i) {
L[0] = L[i];
low = 1; high = i-1;
while (low <= high) {
m = (low+high) / 2;
if (L[0] < L[m]) high = m-1;
else low = m + 1;
}
for (j = i-1; j >= high+1; --j) L[j+1] = L[j];
L[high+1] = L[0];
}
} // BInsertSort

void ShellInsert(int L[], int dk) {
// 对顺序表L作一趟希尔插入排序
int i,j;
for (i = dk+1; i <=