这个算法其实很简单,也很慢(n*n),原理是不断比较相邻两个元素,如果需要的话,换续,直到排列结束。
不多解释,C#代码如下:
class BubbleSorter
{
public BubbleSorter()
{
}
public bool Sort(ref int[] numbers,int arrSize)
{
bool isOver = false;
while (!isOver)
{
isOver = true;
for (int i = 0; i < arrSize-1; i++)
{
if (numbers[i] > numbers[i + 1])
{
Swap(ref numbers, i, i + 1);
isOver = false;
}
}
}
return true;
}
private void Swap(ref int[] numbers, int idx1, int idx2)
{
int temp = numbers[idx1];
numbers[idx1] = numbers[idx2];
numbers[idx2] = temp;
}
}