1. 交换数组内的两个值

  1. // 参数一: 数组a
  2. // 参数二: 需要交换数组的第几个位置(从0开始)
  3. // 参数三: 与之交换的另一个数组的位置
  4. template<typename T>
  5. void swap(T a[], int index1, int index2){
  6. T temp = a[index1];
  7. a[index1] = a[index2];
  8. a[index2] = temp;
  9. }

2. 返回数组内的最大值

  1. // 参数一: 需要计算的数组
  2. // 参数二: 数组的个数
  3. template <typename T>
  4. T max(T a[],int n){
  5. T max = a[0];
  6. // 冒泡排序法,另其降序排列
  7. for (int i = 0; i < n; i++)
  8. {
  9. if (a[i] > max){
  10. max = a[i];
  11. }
  12. }
  13. return max;
  14. }

3. 将数组a升序排序(1,2,3,4)

  1. // 参数一: 需要计算的数组
  2. // 参数二: 数组的个数
  3. template <typename T>
  4. void sort(T a[],int n){
  5. // 冒泡排序法,另其降序排列
  6. for (int i = 0; i < n; i++)
  7. {
  8. for (int j = 0; j < n - 1; j++)
  9. {
  10. if (a[j] > a[j+1]){
  11. swap(a,j,j+1); // 使用模版代码中的1
  12. }
  13. }
  14. }
  15. }

4. 将数组a降序排序(4,3,2,1)

  1. // 参数一: 需要计算的数组
  2. // 参数二: 数组的个数
  3. template <typename T>
  4. void sort(T a[],int n){
  5. // 冒泡排序法,另其降序排列
  6. for (int i = 0; i < n; i++)
  7. {
  8. for (int j = 0; j < n - 1; j++)
  9. {
  10. if (a[j] < a[j+1]){
  11. swap(a,j,j+1); // 使用模版代码中的1
  12. }
  13. }
  14. }
  15. }

5. 数组求和

  1. /*求和*/
  2. template<typename T>
  3. T sum(T arr[],int n){
  4. T sum = 0;
  5. for ( i = 0; i < n; i++)
  6. {
  7. sum += arr[i];
  8. }
  9. return sum;
  10. }

6.数组倒置

  1. // 倒置
  2. template<typename T>
  3. void reverse(T arr[],int n){
  4. T arrTemp[]
  5. for (int i = 0; i < n / 2; i++)
  6. {
  7. arr[i] = arr[n - i - 1];
  8. }
  9. }

7.数组内查找

  1. // 查找
  2. template<typename T>
  3. T find(T arr[],int n,int target){
  4. for (int i = 0; i < n; i++)
  5. {
  6. if(arr[i] == target){
  7. return arr[i];
  8. }
  9. }
  10. return nullptr;
  11. }