先冒泡,再使用vector

Posted on 2021-07-29 22:59  辉仔猿  阅读(41)  评论(0编辑  收藏  举报

将一个intdata[10]={0,1,4,7,8,5,2,3,6,9}通过冒泡排序后得到升序,再用vector删除为偶数的元素

#include<iostream>
#include<vector>
#include<iterator>
#include<list>
using namespacestd;

void buble_sort(int data[],size_t size)
{
    int i,j;
    for(i=0;i<size-1;i++)
    {
        int order=1;
        for(j=0;j<size-1-i;j++)
        {
            if(data[j]>data[j+1])
                swap(data[j],data[j+1]);
        }
        order=0;
    }
}

int main()
{
    int data[10]={0,1,4,7,8,5,2,3,6,9};
    size_t size=10;
    buble_sort(data,size);
    for(i=0;i<size;i++)
        cout<<data[i]<<endl;
        
    //vector删除数组里面是偶数的元素
    vector<int> in_vec;
    for(int j=0;i<size;j++)
        in_vec.push_back(data[j]);
    vector<int>::iterator it;
    for(it=in_vec.begin();it!=in_vec.end();it++)
    {
        if(*it%2!=0)
            break;
        else if(*it%2==0)
            in_vec.erase(it);
        cout<<*it<<endl;
    }
    while(1);
    return 0;
    
}

冒泡排序

void BubbleSort(int A[],int n)
{
    for(i=0;i<n-1;i++)
    {
        flag=false;    //表示本趟冒泡是否发生交换的标志
        for(j=n-1;j>i;j--)
        {
            if(A[j-1]>A[j])    //若为逆序,交换
            {
                swap(A[j-1],A[j]);
                flag=true;
            }
            if(flag==false)    //本趟没有交换,说明已经有序
                return;
        }
    }
}

c语言swap函数:

void swap(int*a,int*b)
{
    int temp;
    temp=*a;
    *a=*b;
    *b=temp;
}