1、冒泡排序的原理
冒泡排序的原理是反复比较待排序数组中所有相邻的两个数据,使他们按照升序(或降序)排列。当待排序数组中所有相邻数据都比较过一次之后,待排序数组中最小(或最大)的数据会被逐步交换到第一位,就像气泡从水底慢慢升到水面一样,故名“冒泡排序算法”。
2、算法练习
冒泡排序口诀:N 个数字来排队,两两相比小靠前,外层循环 N-1,内层循环 N-1-i
-
如何用二重循环将5个数字排序?N = 5
-
要求:对数组中的5个元素:23、90、9、25、16,进行排序(从小到大)
static void Main(string[] args)
{
int[] arr = new int[] {13,90,9,25,16}; //声明一个数组,并赋初始值
int length = arr.Length;//获取数组长度,并将值赋值给变量length。
//使用双重for循环对数组进行排序
for(int i = 0; i < length - 1; i++)//外层循环控制行,控制循环几轮
{//循环变量i作为外层循环计数,赋初值0,同时
for(int j=0; j < length - 1 - i; j++)//内层循环控制列,控制每一轮循环几次
{//循环变量j除了作为内层循环计数之外,还会作为数组下标使用,因此赋初值0
if (arr[j]>arr[j+1])//对相邻的两个元素比较大小,将小的数据放在前面
{
int temp = arr[j];//声明一个中间变量,并将arr[j]对应的元素存储在变量temp中
arr[j] = arr[j + 1];//将较小的arr[j+1]的元素,赋值给变量arr[j](即将较小的值放在前面)
arr[j + 1] = temp;//将temp的数据复制给变量arr[j+1](即将较大的值放在后面)
}
}
}
//将排序后的数组,利用foreach循环遍历输出每一个元素
Console.WriteLine("重新排序后的数组为:");
foreach(int a in arr)
{
Console.Write(a+"\t");
}
Console.ReadLine();
}