Files
Csharp/C#基础/Lesson13_冒泡排序/Program.cs
T

70 lines
2.1 KiB
C#
Raw Normal View History

2025-09-30 16:46:01 +08:00
using System;
namespace Lesson
{
class Program
{
static void Print(int[] arr)
{
for (int i = 0; i < arr.Length; i++)
{
Console.Write(arr[i] + " ");
}
Console.WriteLine();
}
static void Main(string[] args)
{
#region 知识点一 排序的基本概念
//排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录调整为“有序的”
int[] arr = new int[] { 8, 7, 1, 5, 4, 2, 6, 3, 9};
#endregion
Print(arr);
#region 知识点二 基本原理
//两两相比
//不停比较
//不停交换
#endregion
bool isSort;//声明一个标识来保存是否进行交换的状态
#region 知识点三 代码实现
int temp;
for (int i = 0; i < arr.Length; i++)
{
isSort = false;
for (int j = 0; j < arr.Length - 1 - i; j++)//-i可以直接省去后面已经确定位置那一轮的比较
{
if (arr[j] > arr[j + 1])
{
isSort = true;//被交换了被表示true
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
if (!isSort) { break; }//如果是true就继续交换,如果没有交换就false跳过这一轮
}
#endregion
Print(arr);
#region 知识点四 优化
//1.确定位置的数(极值)可以不用继续比了
//所以 没完成n轮 后面位置的数 就不用参与比较了
//2.特殊情况的优化
//比如在某一轮已经得到最终序列后,还会继续判断几轮,可以省去这几轮的时间
//
#endregion
#region 知识点五
#endregion
#region 知识点六
#endregion
}
}
}