冒泡排序及其优化
一般方法
void BubbleSort(int arr[],int len)
{
int i = 0;
int tmp = 0;
for (i = 0; i < len - 1; i++)
{
int j = 0;
for (j = 0; j < len - 1 - i; j++)
{
if (arr[j]>arr[j + 1])
{
tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
}
---------------------
作者:Hansionz
来源:优快云
原文:https://blog.csdn.net/hansionz/article/details/80822494
版权声明:本文为博主原创文章,转载请附上博文链接!
优化后的方法
void BubbleSort(int arr[], int len)
{
int i = 0;
int j = 0;
int n = 0;
int flag = 0;
int pos = 0;
int k = len - 1;
for (i = 0; i < len - 1; i++)
{
pos = 0;
flag = 0;
for (j = n; j < k; j++)
{
if (arr[j]>arr[j + 1])
{
int tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
flag = 1;
pos = j;
}
}
if (flag == 0)
{
return;
}
k = pos;
for (j = k; j > n; j--)
{
int tmp = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] = tmp;
flag = 1;
}
n++;
if (flag == 0)
{
return;
}
}
}
---------------------
作者:Hansionz
来源:优快云
原文:https://blog.csdn.net/hansionz/article/details/80822494
版权声明:本文为博主原创文章,转载请附上博文链接!