C# 算法之冒泡排序与选择排序

本文介绍了使用C#实现冒泡排序和选择排序的方法,并通过示例详细解释了这两种排序算法的工作原理及其代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天开始打算连续写点C#和算法之间的文章。算是自己复习一下以前学过的东西,也算是温故知新。顺道贴出来和大家分享,也祝愿所有程序员同道们能搞定算法这个烦人的东西。不过现在机器性能越来越强大,以后肯定更牛逼,这种情况下鲁棒算法就能解决一切问题。我就喜欢毛子们的思维:铁棒横扫一切!

1.冒泡排序

顾名思义,和冒泡一样。一个气泡在水里那肯定一股脑的从底浮到水面。这里的冒泡排序就是说每个数值和一个气泡一样,在整个序列里自动浮到相应的位置。

以【5,1,3,7,9】 为例。从大到小拍,9在底部,就象一个泡泡浮到水面上 变成【9,5,1,3,7】.

冒泡排序本质是比较两个相邻元素大小,然后按需求交换位置。所以5-1 不变,1-3 交换 ,1-7交换,1-9交换。第一趟【5,3,7,9,1】.下一次5-3 不变,3-7交换,3-9交换 【5,7,9,3,1】。之后【7,9,5,3,1】最后【9,7,5,3,1】。

所以5个元素排序,一共4次大循环可以搞定。外层一个循环,内部循环要每次对比两个元素并按照需求选择是否交换两个元素。

整体框架大同小异,但思路都是一样的。代码如下:

for (int outside = 0; outside < arr.Length-1; outside++)
            {
                for (int inside = 0; inside < arr.Length - 1 - outside; inside++)
                {
                    if (arr[inside] > arr[inside+1])
                    {
                        int middle = arr[inside];
                        arr[inside] = arr[inside+1];
                        arr[inside+1] = middle;
                    }
                }
            }

2.选择排序

插入排序要把整个数列看作两部分,一部分是已经排序完成和另一部分混乱无序。每次从无序中选一个元素插入到有序部分的对应位置。

举例说明:【5,1,3,7,9】

第一次,整个数列无序。要把最大的放在第一位,【9,5,1,3,7】,之后9是有序的,变成【9,7,5,1,3】。依此类推。

【9,7,5,1,3】->【9,7,5,3,1】

代码如下:

            for (int start = 0; start < 4; start++)
            {
                for (int next = start+1; next < 5; next++)
                {
                    if (arr[start] < arr[next])
                    {
                        int middle = arr[start];
      ,                  arr[start] = arr[next];
                        arr[next] = middle;
                    }
                }
            }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值