1.比较相邻的元素。如果第一个比第二个大,就交换他们两个
2.对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对
3.针对所有的元素重复以上的步骤,除了最后一个
4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较
public static int[] BubbleSort(int[] Array)
{
int temp;
for (int i = 0; i < Array.Length-1; i++)
{
for (int j = 0; j < Array.Length - i - 1; j++)
{
if (Array[j] < Array[j + 1])
{
temp = Array[j];
Array[j] = Array[j + 1];
Array[j + 1] = temp;
}
}
foreach (var item in Array)
{
Console.Write(item);
}
Console.WriteLine();
}
return Array;
}
1。外层循环i<Array.length-1;最后一个不用遍历 2。内层循环j<Array.Length-1-i;每次都会将最大或者最小的数排列到末尾,因此外层每一轮循环的次数就要减少 通过观察可以发现刚好Length-1-i可以满足需求