码迷,mamicode.com
首页 > 编程语言 > 详细

C#算法之冒泡排序

时间:2020-07-07 19:32:35      阅读:60      评论:0      收藏:0      [点我收藏+]

标签:第一个   ati   HERE   冒泡   rabl   using   static   code   generic   

排序规则:

  比较相邻的元素。如果第一个比第二个大,就交换它们两个。

  对每对相邻元素做同样的工作,从开始第一对到最后一对。这步做完之后,最后的元素会是最大的数。

  针对所有的元素重复以上的步骤,除了最后一个。

  持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要进行比较。

时间复杂度:O(n^2)

using System;
using System.Collections.Generic;
using System.Text;

namespace 排序算法
{
    class BubbleSort
    {
        public static void Sort(int[] arr)
        {
            int n = arr.Length;
            for(int i = 0; i < n; i++)
            {
                // 减去i不需要对已经排好的元素再次进行比较
                for (int j = 0; j < n -1 - i; j++)
                {
                    if (arr[j] > arr[j + 1])
                    {
                        Swap(arr, j, j + 1);
                    }
                }
            }
        }
        private static void Swap(int[] arr, int i,int j)
        {
            int t = arr[i];
            arr[i] = arr[j];
            arr[j] = t;
        }
    }
}

泛型冒泡排序

using System;
using System.Collections.Generic;
using System.Text;

namespace 排序算法
{
    class BubbleSortGeneric
    {
        public static void Sort<E>(E[] arr) where E : IComparable<E>
        {
            int n = arr.Length;
            for(int i = 0; i < n; i++)
            {
                for(int j = 0; j < n - 1 - i; j++)
                {
                     if( arr[j].CompareTo(arr[j + 1]) > 0)
                    {
                        Swap(arr, j, j + 1);
                    }
                }
            }
        }

        private static void Swap<E> (E[] arr, int i, int j)
        {
            E t = arr[i];
            arr[i] = arr[j];
            arr[j] = t;
        }
    }
}

 

C#算法之冒泡排序

标签:第一个   ati   HERE   冒泡   rabl   using   static   code   generic   

原文地址:https://www.cnblogs.com/sy-liu/p/13262498.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!