Hi i,m JinXiang
? 前言 ?
本篇文章主要介绍C#经典面试题:冒泡算法的使用以及部分理论知识
🍉欢迎点赞 👍 收藏 ?留言评论 📝私信必回哟😁
🍉博主收将持续更新学习记录获,友友们有任何问题可以在评论区留言
目录
冒泡算法是一种基础的排序算法。原理是多次遍历待排序的元素,每次比较相邻的两个元素,如果顺序不对则进行交换,直到所有元素都排好序为止。冒泡排序的特点是每一次遍历都会将最大(或最小)的元素沉到最后,并且每一次遍历都会有一个元素就位,因此被称为冒泡排序。
如下图所示:
在实际应用中,冒泡算法可能并不是首选的排序算法,因为它的时间复杂度较高。然而,冒泡算法有以下几个优点:
虽然冒泡算法在实际应用中可能并不是最优选择,但了解它的原理和特点对于理解排序算法的基本思想和思维方式是有帮助的。
以下是使用冒泡排序算法进行数组排序的C#代码示例
public void Bubble_sort(int[] List)
{
int i, t=1, Temp;//t是目前冒泡的次数,就是小于n-1;i是数组中的第几位元素;Temp是中间替换量,大家都懂哒
bool Finish = false;//康康你到底冒泡冒完没有,刚开始是没有,所以判为F
while((t<List.Length) && !Finish)
{
Finish = true;
for (i = 0; i < List.Length - t; i++)
{
if (List[i] > List[i + 1])
{
Finish = false;
Temp = List[i];
List[i] = List[i + 1];
List[i + 1] = Temp;//这里就是换数据的地方,其实可以简单化的,但是啊,我就是懒惰,聪明的,你,会写的。
}
}
t++;
}
}
using System;
namespace Bubble_Sort
{
class Program
{
static void Main(string[] args)
{
int[] Example = new int[] {-99,-4323,23,42,8848,114514,234 };
Bubble bubble = new Bubble();
bubble.Bubble_sort(Example);
foreach(var item in Example)
{
Console.Write(item+"," );
}
Console.Read();
}
}
public class Bubble
{
public void Bubble_sort(int[] List)
{
int i, t=1, Temp;//t是目前冒泡的次数,就是小于n-1;i是数组中的第几位元素;Temp是中间替换量,大家都懂哒
bool Finish = false;//康康你到底冒泡冒完没有,刚开始是没有,所以判为F
while((t<List.Length) && !Finish)
{
Finish = true;
for (i = 0; i < List.Length - t; i++)
{
if (List[i] > List[i + 1])
{
Finish = false;
Temp = List[i];
List[i] = List[i + 1];
List[i + 1] = Temp;//这里就是换数据的地方,其实可以简单化的,但是啊,我就是懒惰,聪明的,你,会写的。
}
}
t++;
}
}
}
}
排序后的数组效果:-432 -9 23 42 234 8848 114514
使用冒泡排序时需要注意以下几点:
1、冒泡排序是一种相邻元素比较和交换的算法,因此它是一种稳定排序算法,即相等元素的相对位置不会发生改变。
2、冒泡排序的时间复杂度为O(n^2),其中n为待排序数列的长度。因此,在处理大规模数据时,冒泡排序效率较低,不适合使用。
3、冒泡排序过程中,每一轮都会将一个最大(或最小)的元素"冒泡"到数列的末尾。因此,在第一次遍历后,最后一个元素已经是最大(或最小)的元素,无需再进行比较。
4. 如果待排序数列已经是有序的,冒泡排序仍然会进行比较和交换操作,但并不会改变数列的顺序。因此,可以通过设置一个标识位来判断数列是否已经有序,减少不必要的操作。
5. 冒泡排序是一种稳定的排序算法,相等元素的相对位置不会改变。因此,如果对于某些情况下需要保持相等元素的相对顺序时,冒泡排序是一种合适的选择。
综上所述,冒泡排序虽然简单易懂,但效率较低。在实际应用中,更推荐使用其他更高效的排序算法,如快速排序、归并排序等。
冒泡排序是一种简单但效率较低的排序算法。它的基本思想是通过相邻元素的比较和交换,将最大(或最小)的元素逐渐"冒泡"到数列的末尾,从而实现排序的目的。
具体步骤如下:
冒泡排序的时间复杂度为O(n^2),其中n为待排序数列的长度。虽然冒泡排序的效率不高,但它有一些优点:简单易懂、稳定性好、适用于小规模数据等。因此,了解冒泡排序的原理和特点对于理解排序算法的基本思想和思维方式是有帮助的。
总结不易,希望宝宝们不要吝啬亲爱的👍哟(^U^)ノ~YO!如有问题,欢迎评论区批评指正😁