冒泡排序
冒泡排序就是重复“从序列右边开始比较相邻两个数字的大小,再根据结果交换两个数字
的位置”这一操作的算法。在这个过程中,数字会像泡泡一样,慢慢从右往左“浮”到序列的
顶端,所以这个算法才被称为“冒泡排序”。
-
- 比较相邻元素, 如果第一个比第二个大, 就交换他们两个
-
- 对每一对相邻的元素做同样的工作, 执行完毕后, 找到第一个最大值
-
- 重复以上步骤, 每次比较 次数 - 1, 直到不需要比较
using System;
namespace ConsoleApp2
{
public class sortDemo1
{
static void Main(string[] args)
{ // 排序算法(数字类型和数字数量不限,展示形式不限
// ls = ["dad"]
int[] arr = {12, 333, 33, 45, 233, 1};
// 排序前
Console.WriteLine("排序前");
for (int i = 0; i < arr.Length; i++)
{
Console.Write(arr[i] + "\t");
}
// 冒泡排序
for (int i = 0; i < arr.Length-1; i++)
{
for (int j = arr.Length-1; j-1 >= 0; j--)
{
if (arr[j-1] > arr[j])
{
// 交换这个两个数
int temp = arr[j - 1];
arr[j - 1] = arr[j];
arr[j] = temp;
}
}
}
// 排序后
Console.WriteLine("排序后");
for (int i = 0; i < arr.Length; i++)
{
Console.Write(arr[i] + "\t");
}
}
}
}
封装
using System;
namespace ConsoleApp2
{
public class sortDemo1
{
// 冒泡排序
public static void bubbleSort(int[] arr)
{
for (int i = 0; i < arr.Length-1; i++)
{
for (int j = arr.Length-1; j-1 >= 0; j--)
{
if (arr[j-1] > arr[j])
{
// 交换这个两个数
int temp = arr[j - 1];
arr[j - 1] = arr[j];
arr[j] = temp;
}
}
}
}
//打印数组函数
public static void printArray(int[] arr)
{
string str = "[";
for (int i = 0; i < arr.Length; i++)
{
if (i == arr.Length - 1)
str += arr[i] + "]";
else
str += arr[i] + ", ";
}
Console.WriteLine(str);
}
static void Main(string[] args)
{ // 排序算法(数字类型和数字数量不限,展示形式不限
// ls = ["dad"]
int[] arr = {12, 333, 33, 45, 233, 1};
// 排序前
Console.WriteLine("排序前");
printArray(arr);
// 调用
bubbleSort(arr);
// 排序后
Console.WriteLine("排序后");
printArray(arr);
}
}
}