C#算法
记录一下手搓算法,现在是2025.11.21,看下能学多少个
排序算法
冒泡排序
static void Main(string[] args)
{
Random a = new Random();
int[] arr = new int[20]; //
for (int i = 0; i < 20; i++) // 创建一个数组,包含20个0-100的随机数字
{ //
arr[i] = a.Next(0,101);
Console.Write(arr[i] + " ");
}
bool isSwap = false; //优化1:外部声明一个布尔值,用于记录是否交换,如果交换过就跳过一轮
Console.WriteLine();
for (int i = 0;i < arr.Length;i++) //轮循环
{
isSwap = false;//进来一轮默认没有交换
for (int j = 0; j < arr.Length - 1 - i;j++) //交换循环
{ //优化2:减去轮数i,这样就不会交换已经确定位置的数字
if (arr[j] > arr[j + 1])
{
isSwap = true; //通过交换判断后 记录bool值为true(已交换)
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
if(!isSort)
{
break; //如果没有通过交换判断 说明已经不需要排序 break跳出轮循环
}
}
for(int i = 0;i < arr.Length;i++)
{
Console.Write(arr[i] + " ");
}
}
评论