去除数组中重复的元素,并返回去重后数组的长度

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ZM970307/article/details/79967286
#include <iostream>
using namespace std;

void insertSort(int a[], int n) //插入排序
{
    for(int i = 1; i < n; i++)
    {
        int j = i - 1;
        int key = a[i];
        while (a[j] > key && j >= 0)
        {
            a[j + 1] = a[j];
            j--;
        }
        a[j+1] = key;
    }
}

int removeDuplicates(int a[], int n)        //对数组元素去重,返回去重后数组的长度
{
    int index = 1;
    for (int i = 1; i < n; i++)     {
        if (a[i] != a[index - 1])
            a[index++] = a[i];
    }
    return index;
}

int main()
{
    int a[10] = { 10,4,8,9,5,4,2,1,3,4 };
    insertSort(a, 10);  //先使用插入排序对数组元素进行升序排序
    int len = removeDuplicates(a, 10);  //去重
    for (int i = 0; i < len; i++)
        cout << a[i] << " ";
    cout << endl;
    cout << "len = " << len << endl;

    system("pause");
    return 0;
}
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页