关于数据结构的一个难题!

来源:百度知道 编辑:UC知道 时间:2024/05/18 17:52:14
高手帮忙看看,这题目怎么做!

1. 实现选择排序,函数原型为:void SelectSort(int a[], int n)。
2. 实现插入排序,函数原型为:void InsertSort(int a[], int n)。
其中a[]是待排序数组,n是数组长度,排序后的数据仍在a[]中。

要求:
1. 分析功能要求;
2. 分析算法复杂度。

#include <stdio.h>

/*交换两个数*/
void Swap(int &a, int &b)
{
int tmp;
tmp = a;
a = b;
b = tmp;
}
/*输出一行十个数字*/
void Write(int array[], int begin, int end)
{
for(int i = begin; i <= end; i ++)
// cout <<array[i] << " ";
printf("%d ",array[i]);
printf("\n");
// cout << endl;
}
/*插入排序*/
void InsertionSort(int array[], int begin, int end)
{
int i, j;
int tmp;
for(i = begin+1; i <= end; i ++) /*循环几次就输出几行*/
{
tmp = array[i];
for(j = i-1; j >= begin; j --)
{
if(tmp > array[j]) /*如果要从小到大排序,则改将'>'改为'<'*/
array[j + 1] = array[j];
else
break;
}
array[j+1] = tmp;
Write(array, begin, end); /*输出排序结果(一行)*/
}
}
/*选择排序*/
void SelectionSort(int array