1. 交换数组内的两个值
// 参数一: 数组a// 参数二: 需要交换数组的第几个位置(从0开始)// 参数三: 与之交换的另一个数组的位置template<typename T>void swap(T a[], int index1, int index2){ T temp = a[index1]; a[index1] = a[index2]; a[index2] = temp;}
2. 返回数组内的最大值
// 参数一: 需要计算的数组// 参数二: 数组的个数template <typename T>T max(T a[],int n){ T max = a[0]; // 冒泡排序法,另其降序排列 for (int i = 0; i < n; i++) { if (a[i] > max){ max = a[i]; } } return max;}
3. 将数组a升序排序(1,2,3,4)
// 参数一: 需要计算的数组// 参数二: 数组的个数template <typename T>void sort(T a[],int n){ // 冒泡排序法,另其降序排列 for (int i = 0; i < n; i++) { for (int j = 0; j < n - 1; j++) { if (a[j] > a[j+1]){ swap(a,j,j+1); // 使用模版代码中的1 } } }}
4. 将数组a降序排序(4,3,2,1)
// 参数一: 需要计算的数组// 参数二: 数组的个数template <typename T>void sort(T a[],int n){ // 冒泡排序法,另其降序排列 for (int i = 0; i < n; i++) { for (int j = 0; j < n - 1; j++) { if (a[j] < a[j+1]){ swap(a,j,j+1); // 使用模版代码中的1 } } }}
5. 数组求和
/*求和*/template<typename T>T sum(T arr[],int n){ T sum = 0; for ( i = 0; i < n; i++) { sum += arr[i]; } return sum;}
6.数组倒置
// 倒置template<typename T>void reverse(T arr[],int n){ T arrTemp[] for (int i = 0; i < n / 2; i++) { arr[i] = arr[n - i - 1]; }}
7.数组内查找
// 查找template<typename T>T find(T arr[],int n,int target){ for (int i = 0; i < n; i++) { if(arr[i] == target){ return arr[i]; } } return nullptr;}