从基础重新抓起。
冒泡排序:每次从数组头到尾选出最大或者最小的,排到尾部或者头部。以排序结果从小到大为例:
每次从数组中把最大的调换到末尾。
eg.元素个数:count,需要找count-1次(外循环,最后一次不用再做比较了),每次从头到末尾没有确定的数据中找最大的(内循环),做法就是比较相邻两个元素的大小,大的向后移动。
贴出代码:
void BubbleSort::Sort(int elements[],int count)
{
this->count=count;
cout<<"count:"<<this->count<<endl;
cout<<"original:"<<endl;
for(int i=0;i<this->count;i++)
{
cout<<" "<<elements[i];
}
cout<<endl;
for(int i=0;i<this->count-1;i++)
{
for(int j=0;j<this->count-i-1;j++)
{
if(elements[j+1]<elements[j])
{
int tmp=elements[j+1];
elements[j+1]=elements[j];
elements[j]=tmp;
}
}
}
cout<<"sorted:"<<endl;
for(int i=0;i<this->count;i++)
{
cout<<" "<<elements[i];
}
cout<<endl;
}