zoukankan      html  css  js  c++  java
  • 将两个整型数组按照升序排列,并且过滤掉重复数组元素

    解题思路:

      1. 先将两个数组进行合并,可以利用C语言的memcpy函数进行;

      2. 将新数组进行冒泡排序;

      3. 过滤掉重复元素;

    代码如下:

    #include <stdlib.h> #include<string.h>

    //冒泡排序

    void sortArray(int * inArr, int arrCount)

    {    

       int i = 0;    

      for (int k = 0; k < arrCount - 1; k++)    

      {        

        for (int p = 0; p < arrCount - k - 1; p++)        

        {            

           if (inArr[p] > inArr[p + 1])            

          {                

             int temp = inArr[p];                

            inArr[p] = inArr[p + 1];                

             inArr[p + 1] = temp;            

          }        

        }    

      }

    }

    /* function:merge two arrays into one new array and sort its element by asc, then filter the dunplicate elements.

    input:int * pArray1 :整型数组1 int iArray1Num:数组1元素个数 int * pArray2 :整型数组2 int iArray2Num:数组2元素个数

    输出:int * pOutputArray:合并后的数组 int * iOutputNum:合并后数组元素个数

    返回:void */

    void CombineBySort(int * pArray1, int iArray1Num, int * pArray2, int iArray2Num, int * pOutputArray, int * iOutputNum)

    {        

      if (pArray1 == NULL || pArray2 == NULL || pOutputArray == NULL || iOutputNum == NULL) return;    

       if (iArray1Num == 0 && iArray2Num == 0) return;    

      int *  pTempArray = (int *)malloc(sizeof(int) * (iArray1Num + iArray2Num));    

       if (pTempArray == NULL) return;    

      memcpy(pTempArray, pArray1, iArray1Num * sizeof(int));    

       memcpy(pTempArray + iArray1Num, pArray2, iArray2Num * sizeof(int));    

      sortArray(pTempArray, (iArray1Num + iArray2Num));    

      //进行了数组剔除,并且赋值给输出数组中    

      int idx = 0;    

      pOutputArray[0] = pTempArray[0];    

      for (int q = 1; q < iArray1Num + iArray2Num; q++)    

      {        

         if (pOutputArray[idx] == pTempArray[q]) continue;        

        idx++;        

        pOutputArray[idx] = pTempArray[q];    

      }    

      *iOutputNum = idx + 1;    

       free(pTempArray);

         return;

    }

  • 相关阅读:
    第01组 每周小结(2/3)(组长)
    第01组 每周小结 (1/3)(组长)
    第01组 Beta冲刺 总结(组长)
    第01组Beta冲刺(5/5)(组长)
    第01组Beta冲刺(4/5)(组长)
    第01组Beta冲刺(3/5)(组长)
    第01组Beta冲刺(2/5)(组长)
    第01组Beta冲刺(1/5)(组长)
    软工实践个人总结
    每周小结(3/3)
  • 原文地址:https://www.cnblogs.com/kennyael/p/10005486.html
Copyright © 2011-2022 走看看