排序1-冒泡排序
今天学习冒泡排序
几点直观的发现和认识:
1. 第一趟会发最大的值移动到最右端;第二趟会把第二大的值移动到倒数第二位置;
2. 冒泡排序的核心思想就是:每一趟排序都从第一个元素开始,相邻元素两两比较,逆序则交换位置;
3. 假设有集合有n个元素,则一共需要n趟排序;
4. 每一趟两两比较,需要比较n-1次
5. 外层for控制趟数,内层for控制两两比较
代码:
int nums = 20;
int[] arr=new int[nums];
Random Random = new Random();
for (int i = 0; i < nums; i++)
{
arr[i]=Random.Next(0,nums);
}
Console.Write($"原始数据:");
foreach (var item in arr)
{
Console.Write($"{item} ");
}
Console.WriteLine();
//冒泡排序
for (int i = 0; i < arr.Length; i++)
{
for (int j = 0; j < arr.Length-1; j++)
{
if (arr[j] > arr[j + 1])
{
int tem = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tem;
}
}
Console.Write($"第{i}次:");
foreach (var item in arr)
{
Console.Write($"{item} ");
}
Console.WriteLine();
}
结果:
总结:冒泡排序很慢,200个元素都很慢