C#冒泡排序
建议新人不要直接复制,最好手打,最好看过一遍之后根据自己的记忆和理解码出来。
不用有太大压力,就两个for循环,最好不要背,靠理解,否则直接背过没有任何帮助。
以下代码运行过程为输入一个数组,然后程序会自动由小到大排列这个数组👇
using System;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
//输入一个数组长度,并且记录输入的数组长度,留作下面的fou循环,作为for的循环次数
Console.WriteLine("共有几个数需要排列?");
int l = int.Parse(Console.ReadLine());
int[] arr = new int[l];
//假设输入3个数组,三个数的下标分别为 0,1,2
//利用循环分别输入第0个,第1个,第2个数。
for (int i = 1; i <= l ; i++)
{
Console.WriteLine("请输入第" + i + "个数");
int a = int.Parse(Console.ReadLine());
arr[i - 1] = a;
//循环的三遍a分别为 1,2,3,所以a[i - 1]为 0, 1, 2
}
//这里输出一次数组,可以检查以上代码有什么问题,也可以检查一遍自己输入的数组。
Console.WriteLine("输入的数组为:");
for (int i = 0; i < arr.Length; i++)
{
Console.Write(arr[i] + ",");
}
//这里是冒泡排序的核心代码
for (int i = 1; i < arr.Length; i++)
{
for (int j = 0; j < arr.Length - i; j++)
{
if (arr[j]>arr[j+1])
{
int l1 = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = l1;
}
}
}
Console.WriteLine();
//最后在输出一次最终排好序的数组
Console.WriteLine("输出的数组为:");
for (int i = 0; i < arr.Length; i++)
{
Console.Write(arr[i]+",");
}
Console.ReadLine();
}
}
}
这里加入了输入的步骤,如果前面的看不懂可以自己new一个新数组然后写核心代码
新数组一定要new
以下是上面代码的运行结果👇