冒泡排序
实际用处并不大,但经常出现在面试题中。主要考察对【数组】和【for循环】的掌握。
排序思路(升序): 从第一位数开始不断与后一位数【比较大小】,如果前一位数大,则两个比较数【交换】,然后进行下一位数比较。直至倒二位与倒一位数进行比较完成,接下来重新从第一位开始再次比较。
核心思路: 通过【两两比较】,每一趟的比较都把最大值(最小值)移到最后一位。经过多次比较,最小值就在第一位,最大值在最后一位。
//创建随机数组
Random r = new Random();
int[] nums = new int[10];
int i, j, k;
for (i=0;i<nums.Length;i++)
{
nums[i] = r.Next(1,11);
}
//输出排序前nums数组元素
foreach (int n in nums)
{
Console.Write(n+" ");
}
Console.Write("\n");
#region 冒泡排序
//循环数组长度 length-1 【趟】
for (i = 0; i < nums.Length - 1; i++)
{
//循环数组长度 length-1【次】
for (j = 0; i < nums.Length - 1 - j; j++)
{
//做升序排序
if (nums[j] > nums[j + 1])
{
//当前元素大于下一个元素,两个元素交换值
k = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = k;
}
}
}
//循环输出nums元素
foreach (int n in nums)
{
Console.Write(n + " ");
}
#endregion