将一个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; }