时间复杂度:O(n^2)
空间复杂度:O(1)
稳定性:稳定
举例:【4,3,2,5】
第一轮:
比较4,3,2,5
得 3,4,2,5;
比较3,4,2,5
得 3,2,4,5;
比较3,2,4,5
得 3,2,4,5;
第二轮:
比较3,2,4,5
得 2,3,4,5;
比较2,3,4,5
得 2,3,4,5;
比较2,3,4,5;
得 2,3,4,5;
第三轮:。。。
/// <summary>
/// 冒泡排序
/// </summary>
/// <param name="nums">待排数据</param>
public void Sort(int[] nums)
{
//最后一轮排序只有1个数字,不需要在进行比较 所以共需进行nums.Length-1次
for (int i = 0; i < nums.Length-1; i++)
{
//每轮从第一个元素开始 两两比较 大的后移 这样可以把大的元素沉到底部
//第n轮的目的就是在除了最后n-1个元素外的元素内 找出最大的 放在倒数n个数的位置
for (int j = 0; j < nums.Length-i-1; j++)
{
if (nums[j]>nums[j+1])
{
int tmp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = tmp;
}
}
}
}