using System;
public class Program
{
// 逐一将大值元素向后交换
public static void BubbleSort(int[] nums){
for(int i=nums.Length-1; i>0;i--){ // 使用i来控制指向数组的位置
for(int j=0; j<i; j++){ // [0,i)中,逐一将大值元素向后交换
if(nums[j] > nums[j+1]){
int x = nums[j];
nums[j] = nums[j+1];
nums[j+1] = x;
}
}
}
}
public static void Main()
{
int[] nums = new int[]{4,5,7,2,3,1,6};
BubbleSort(nums);
Console.WriteLine(string.Join(",",nums));
Console.WriteLine("Hello World");
}
}
冒泡排序比较容易理解,就是逐一将大值元素向后交换
1. 使用i来控制指向数组的位置;
2. 在[0,i)中,逐一将大值元素向后交换
4,5,7,2,3,1,6
第一趟: 4,5,2,3,1,6,7
4,5,7,2,3,1,6
4,5,7,2,3,1,6
4,5,2,7,3,1,6
4,5,2,3,7,1,6
4,5,2,3,1,7,6
4,5,2,3,1,6,7
第二趟 4,2,3,1,5,6,7
4,5,2,3,1,6,7
4,2,5,3,1,6,7
4,2,3,5,1,6,7
4,2,3,1,5,6,7
4,2,3,1,5,6,7
第三趟 2,3,1,4,5,6,7
2,4,3,1,5,6,7
2,3,4,1,5,6,7
2,3,1,4,5,6,7
2,3,1,4,5,6,7
第四趟 2,1,3,4,5,6,7
2,3,1,4,5,6,7
2,1,3,4,5,6,7
2,1,3,4,5,6,7
第五趟 1,2,3,4,5,6,7
1,2,3,4,5,6,7
1,2,3,4,5,6,7
第六趟 1,2,3,4,5,6,7
1,2,3,4,5,6,7
从外层看: [4,5,7,2,3,1,6]
4,5,2,3,1,6,7
4,2,3,1,5,6,7
2,3,1,4,5,6,7
2,1,3,4,5,6,7
1,2,3,4,5,6,7
1,2,3,4,5,6,7