(整理中)利用定义模板类的一些初级算法

来源:互联网 发布:rpm qa grep java 编辑:程序博客网 时间:2024/06/08 01:01

*在第七周的实验报告中的第三个任务,有用到构建定义模板的知识,在上半学期中学到的一些基础算法,或许在下半年的程序语言中会用到,就去查找了一下,目前只觉得这些眼熟些,就总结一下。如果在看到会在整理上。整理的很粗糙。

//选择法对数组排序的函数模板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;}