*在第七周的实验报告中的第三个任务,有用到构建定义模板的知识,在上半学期中学到的一些基础算法,或许在下半年的程序语言中会用到,就去查找了一下,目前只觉得这些眼熟些,就总结一下。如果在看到会在整理上。整理的很粗糙。
//选择法对数组排序的函数模板
template <class T>
void selectsort(T arr[],int size)
{
T temp;
int i,j;
for (i=0;i<size-1;i++)
for (j=i+1;j<size;j++)
if (arr[i]>arr[j])
{
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
//冒泡法对数组排序的函数模板
template<class T>
void bubblesort(T *d,int n)
{
int i,j;
T t;
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
if(d[j]>d[j+1])
{
t=d[j];
d[j]=d[j+1];
d[j+1]=t;
}
}
//插入法对数组排序的函数模板
template <class T>
void InsertSort(T A[], int n)
{
int i, j;
T temp;
for (i = 1; i < n; i++)
{
temp = A[i];
for (j=i-1; j>=0&&temp<A[j];j--)
A[j+1]=A[j];
A[j+1] = temp;
}
}
//二分查找法的函数模板
template <class T>
int binary_search(T array[], T value, int size)
{
int high = size-1, low = 0, mid;
while (low<=high)
{
mid = (high + low) / 2;
if (value < array[mid])
high = mid - 1;
else if(value>array[mid])
low = mid + 1;
else return mid;
}
return -1;
}