经典的冒泡排序 算法
先看代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//本程序主要展示标准的冒泡排序算法
namespace ArrayBubbleSort
{
internal class Program
{
//编一个冒泡排序算法的方法
//经典的冒泡排序算法,按照升序排列
static void BubbleSort(int[] arr)
{
//int temp = 0;
for(int i=0; i<arr.Length; i++)
{
int temp = 0;
for(int j=0;j<arr.Length-1; j++)
{
if (arr[j] > arr[j+1])
{
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
static void Main(String[] args)
{
int[] arr = {20,3,100,4,99,30,10,50,1000,23,65 };
Console.WriteLine("没有排序之前的数组:");
foreach(int i in arr)
{
Console.Write(i + " ");
}
Console.WriteLine();
BubbleSort(arr);
Console.WriteLine("排序之后的数组:");
foreach (int i in arr)
{
Console.Write(i + " ");
}
Console.WriteLine();
}
}
}
冒泡排序算法的核心:前后的数组元素比较并交换
for(int i=0; i<arr.Length; i++)
{
int temp = 0;
for(int j=0;j<arr.Length-1; j++)
{
if (arr[j] > arr[j+1])
{
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
或者
for(int i=0; i<arr.Length; i++)
{
int temp = 0;
for(int j=0;j<arr.Length-1-i; j++)
{
if (arr[j] > arr[j+1])
{
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
arr[j] > arr[j+1], 意思就是前面的元素比后面的元素大,进行交换处理,很好理解