(7.11)C++编程,冒泡排序法

来源:百度知道 编辑:UC知道 时间:2024/06/03 06:02:55
在冒泡排序算法中,就像旗袍在水中上浮一样,较小的值会逐渐的“冒”到数组的顶部,而较大的值则“沉”到底部。冒泡排序法要多遍地对数组进行排序。每一遍都比较相邻的元素对。如果一对元素是升序的(或者两个值相等)那么使它们的值保持不变。如果一对元素是降序的,那么在数组中交换它们的值。编写一个程序,用冒泡排序法排序一个有10个元素的整数数组。~~

template<class T>
void BubbleSort(T a[],int n)
{
bool swapped=true;
for(int i=n;i>1 && swapped;i--)
{
swapped=false;
for(int j=0;j<i-1;j++)
{
if(a[j]>a[j+1])
{
Swap(a[j],a[j+1]);
swapped=true;
}
}
}
}

void Bubble(int a[],int n)
{
int n=10;
bool fast=true;
int tmp;
for (int i=0;i<9;i++)
{
for (int j=0;j<9-i;j++)
{
if (a[j]>a[j+1])
{
tmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
fast=false;
}
}
if(fast) return;
}
}

void sort(int a[],int n)
{
int temp;
for(int i=1;i<=n-1;i++)
for(int j=0;j<=i;j++)
{
if(a[j]>a[j+1])//比较大小,大的向下澄,小的向上冒
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}

自己多多的研究下先,你原理都那么明白了 ,想想就可以编出来了嘛。