冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。
原理 (从左往右 升序) :
- 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
- 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
- 针对所有的元素重复以上的步骤,除了最后一个。
- 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
void bubble_sort(int *a,int n)
{
for(int i=0;i<n;i++)
for(int j =1;j<n-i;j++)
{
if(a[j-1]>a[j])
{
temp=a[j - 1];
a[j - 1]=a[j];
a[j]=temp;
}
}
}
冒泡排序的优化:
void bubble_sort(int a[],int n)//n为数组a的元素个数
{
bool flag =true;
int k = n;
int temp;
while(flag)
{
flag = false;
for(int j=1; j<k; j++)
{
if(a[j-1]>a[j])
{
temp=a[j - 1];
a[j - 1]=a[j];
a[j]=temp;
flag = true;
}
}
k--;
}
}