冒泡排序:
基本写法
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 冒泡排序
{
class Program
{
static void Main(string[] args)
{
int[] arr = new int[] { 8, 6, 1, 3, 4, 2, 7, 9, 5 };
for (int m = 0; m < arr.Length; m++)
{
//进一次循环就比较一轮
for (int n = 0; n < arr.Length - 1 - m; n++)
{
if (arr[n] > arr[n + 1])
{
//第二步 交换位置
int temp = arr[n];
arr[n] = arr[n + 1];
arr[n + 1] = temp;
}
}
}
for (int i = 0; i < arr.Length; i++)
{
Console.Writeline(arr[i]);
}
}
}
}
有部分数是已经排序好的情况
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 冒泡排序
{
class Program
{
static void Main(string[] args)
{
int arr[] =new int[]{9,1,2,3,4,5,6,7,8,9}
bool isSort = false;## 标题
for (int m = 0; m < arr.Length; m++)
{
//每一轮开始时默认没有进行交换
isSort = false;
//进一次循环就比较一轮
for (int n = 0; n < arr.Length - 1 - m; n++)
{
if (arr[n] > arr[n + 1])
{
isSort = true;
//第二步 交换位置
int temp = arr[n];
arr[n] = arr[n + 1];
arr[n + 1] = temp;
}
}
//当一轮结束过后,如果isSort这个标识还是false
//那就意味着已经是最终的序列,不需要再判断了
if (!isSort)
{
break;
}
}
for (int i = 0; i < arr.Length; i++)
{
Console.WriteLine(arr[i]);
}
Console.ReadLine();
}
}
}