冒泡排序优化

冒泡排序:是一种交换排序,其基本思想是两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。

为了避免序列已有序的情况下还进行比较,可以设置一个标记变量来减少循环。

C#示例代码如下:

using System;
using System.Linq;

namespace ConsoleApp1
{

    class Program
    {
        static void Main(string[] args)
        {
            int[] sqList = new int[] {2,1,3,4 };
            BubbleSort(sqList);
            sqList.ToList().ForEach(s => Console.Write(s+" "));
            Console.ReadLine(); 
        }

        static void BubbleSort(int[] sqList)
        {
            bool status = true;
            for (int i = 0; i < sqList.Length && status; i++)
            {
               status = false;
                for (int j = sqList.Length - 2; j >= i; j--)
                {
                    if (sqList[j] > sqList[j + 1])
                    {
                        Swap(sqList, j, j + 1);
                        status = true;
                    }
                }
            }
        }

        static void Swap(int[] sqList, int index1, int index2)
        {
            int value1 = sqList[index1];
            sqList[index1] = sqList[index2];
            sqList[index2] = value1;
        }
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 排序 1. 冒泡排序 时间复杂度:O(n2)。 2. 有序数组的冒泡排序优化 第一种优化方式是设置一个标记位来标记...
    一个人在路上走下去阅读 10,316评论 3 6
  • 一般我们写冒泡排序时都会这么写: 经过优化的冒泡排序是这样的: 现在我们分别用最差和最优两种情况来分别衡量这两个版...
    村上果树阅读 4,204评论 0 1
  • 通过前面的知识,我们已经知道,有序的数据在查找时有极大的性能提升。很多查找都基于有序数据,但并不是所有的结构都能像...
    大大纸飞机阅读 4,921评论 0 1
  • 因为有一阵子马尔克斯的作品很热,朋友强力推荐我去读《百年孤独》,因为是得了文学奖的作品,总以为会比较晦涩,并不抱多...
    明媚月光阅读 5,276评论 2 6
  • 今天带三个娃去外面逛。 中午吃完牛排后打算坐公交去苏州博物馆。还没到站台车已经到了,四个人边跑边喊着呼啸地坐上车。...
    JC贾阅读 3,068评论 0 0

友情链接更多精彩内容