首先,衡量排序算法的重要一点是排序算法的稳定性:即如果两个元素a1 == a2,且排序前a1与a2之间的位置与排序后没有变化,则称此排序算法是稳定的。
其次,排序算法的性能评估主要看元素间的比较次数。
swap函数
void swap(int &a,int &b)
{
int temp;
temp = a;
a = b;
b =temp;
}
冒泡排序-带判断位的冒泡排序
(1)思想:每次比较相邻两个元素,若前一个比后一个大,则交换位置,依次比较下去,直至全部比较完毕,称作一次冒泡,n个元素中的最小元素位于了最左边;然后再对剩下的n-1个元素做同样的操作。
(2)c++实现:
void bubbleSort(int arr[],int n)//输入待排序数组和数组元素个数n
{
bool flag;
for(int i = 1;i < n;i++)//外层遍历
{
flag = false;
for(int j = n-1;j>=i;j--)
{
if(arr[j] < arr[j-1])//一次冒泡
{
swap(arr[j],arr[j-1]);
flag = true;
}
}
if(flag == true)
break;
}
}
(3)复杂度: o(n^2)