`
wolfmaster
  • 浏览: 159117 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

C#排序算法大全

    博客分类:
  • c#
阅读更多
一、冒泡排序(Bubble)
using System;

namespace BubbleSorter
{
public class BubbleSorter
{
  public void Sort(int[] list)
  {
   int i,j,temp;
   bool done=false;
   j=1;
   while((j<list.Length)&&(!done))
   {
    done=true;
    for(i=0;i<list.Length-j;i++)
    {
     if(list[i]>list[i+1])
     {
     done=false;
     temp=list[i];
     list[i]=list[i+1];
     list[i+1]=temp;
     }
    }
   j++;
   }
  }
}

public class MainClass
{
  public static void Main()
  {
   int[] iArrary=new int[]{1,5,13,6,10,55,99,2,87,12,34,75,33,47};
   BubbleSorter sh=new BubbleSorter();
   sh.Sort(iArrary);
   for(int m=0;m<iArrary.Length;m++)
   Console.Write("{0} ",iArrary[m]);
   Console.WriteLine();
  }
}
}

二、选择排序(Selection)

using System;

namespace SelectionSorter
{
public class SelectionSorter
{
  private int min;
  public void Sort(int [] list)
  {
   for(int i=0;i<list.Length-1;i++)
   {
   min=i;
    for(int j=i+1;j<list.Length;j++)
    {
    if(list[j]<list[min])
    min=j;
    }
   int t=list[min];
   list[min]=list[i];
   list[i]=t;
   }
  }
}

public class MainClass
{
  public static void Main()
  {
   int[] iArrary = new int[]{1,5,3,6,10,55,9,2,87,12,34,75,33,47};
   SelectionSorter ss=new SelectionSorter();
   ss.Sort(iArrary);
   for (int m=0;m<iArrary.Length;m++)
   Console.Write("{0} ",iArrary[m]);
   Console.WriteLine();
  }
}
}

三、插入排序(InsertionSorter)

using System;

namespace InsertionSorter
{
public class InsertionSorter
{
  public void Sort(int [] list)
  {
   for(int i=1;i<list.Length;i++)
   {
   int t=list[i];
   int j=i;
    while((j>0)&&(list[j-1]>t))
    {
    list[j]=list[j-1];
    --j;
    }
   list[j]=t;
   }
  }
}

public class MainClass
{
  public static void Main()
  {
   int[] iArrary=new int[]{1,13,3,6,10,55,98,2,87,12,34,75,33,47};
   InsertionSorter ii=new InsertionSorter();
   ii.Sort(iArrary);
   for(int m=0;m<iArrary.Length;m++)
   Console.Write("{0}",iArrary[m]);
   Console.WriteLine();
  }
}
}

四、希尔排序(ShellSorter)

using System;

namespace ShellSorter
{
public class ShellSorter
{
  public void Sort(int [] list)
  {
  int inc;
  for(inc=1;inc<=list.Length/9;inc=3*inc+1);
   for(;inc>0;inc/=3)
   {
    for(int i=inc+1;i<=list.Length;i+=inc)
    {
    int t=list[i-1];
    int j=i;
     while((j>inc)&&(list[j-inc-1]>t))
     {
     list[j-1]=list[j-inc-1];
     j-=inc;
     }
    list[j-1]=t;
    }
   }
  }
}

public class MainClass
{
  public static void Main()
  {
   int[] iArrary=new int[]{1,5,13,6,10,55,99,2,87,12,34,75,33,47};
   ShellSorter sh=new ShellSorter();
   sh.Sort(iArrary);
   for(int m=0;m<iArrary.Length;m++)
   Console.Write("{0} ",iArrary[m]);
   Console.WriteLine();
  }
}


-------------------------------------------------------------------------------
        public static void BubbleSort(IList<ShipOrder> shipOrder)
        {
            #region 冒泡
            int i, j;
            ShipOrder temp;
            bool exchange;//交换标志
            for (i = 0; i < shipOrder.Count; i++) //最多做F.Length-1趟排序
            {
                exchange = false; //本趟排序开始前,交换标志应为假
                for (j = shipOrder.Count - 2; j >= i; j--)
                {
                    if (shipOrder[j].OrderID.CompareTo(shipOrder[j + 1].OrderID) > 0) //交换条件
                    {
                        temp = shipOrder[j + 1];
                        shipOrder[j + 1] = shipOrder[j];
                        shipOrder[j] = temp;
                        exchange = true; //发生了交换,故将交换标志置为真
                    }
                }
                if (!exchange) //本趟排序未发生交换,提前终止算法
                {
                    break;
                }
            }
            #endregion
        }
分享到:
评论

相关推荐

    c# 排序算法大全 经典算法

    本篇将深入探讨C#中的排序算法,以及如何在Visual Studio 2005(VS05)环境下编写和应用这些算法。 1. **基础排序算法** - **冒泡排序**:最简单的排序算法之一,通过重复遍历数组比较并交换相邻元素来实现排序。...

    C# 排序算法大全参考资料,比较清淅的一个版本。集中介绍了C#中的冒泡算法、选择排序、插入排序、希尔排序等常用算法,并包含示例代码和注意事项等。

    在编程领域,排序算法是数据处理的核心部分,尤其是在C#这样的高级编程语言中。本文将深入探讨C#中常见的四种排序算法:冒泡排序、选择排序、插入排序和希尔排序,以及它们的实现细节和应用场合。 首先,我们来看**...

    C#排序算法大全含数据结构所有算法

    本文将深入探讨标题所提及的几种C#排序算法:冒泡排序、选择排序、插入排序以及希尔排序。这些算法不仅在理论上有其独特价值,而且在实际开发中也常常被用作理解复杂算法的基础。 首先,我们来看**冒泡排序**。冒泡...

    C#排序算法大全下载

    根据提供的文件信息,我们可以归纳出以下C#中的几种排序算法及其相关知识点: ### 1. 冒泡排序(Bubble Sort) 冒泡排序是一种简单的排序算法。它重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就...

    C#排序算法(C#)

    在编程领域,排序算法是数据结构与算法中的基础部分,对于C#开发者来说,掌握不同的排序算法至关重要。本文将深入探讨C#语言中常见的几种排序算法,包括它们的工作原理、性能特点以及如何在C#代码中实现。 1. **...

    C#排序算法详解.rar

    本资料“C#排序算法详解”聚焦于如何在C#中实现各种排序算法,帮助学习者深入理解并提升编程技能。 1. **冒泡排序**:冒泡排序是一种简单的排序算法,通过重复遍历数组,比较相邻元素并交换位置来完成排序。C#实现...

    c#排序算法 经典c#排序算法 经典

    c#排序算法 经典c#排序算法 经典c#排序算法 经典c#排序算法 经典c#排序算法 经典c#排序算法 经典c#排序算法 经典c#排序算法 经典c#排序算法 经典c#排序算法 经典c#排序算法 经典c#排序算法 经典

    c#排序算法的动态演示系统

    《C#排序算法的动态演示系统深度解析》 在编程领域,排序算法是不可或缺的基础,尤其是在C#这样的高级编程语言中。本系统专注于C#排序算法的动态演示,旨在通过直观的方式帮助开发者理解和掌握各种排序算法的工作...

    C#常用排序算法

    以下是四种常见的C#排序算法:冒泡排序、选择排序、插入排序和希尔排序的详细解释。 1. **冒泡排序**: 冒泡排序是一种简单的交换排序,通过重复遍历数组,比较相邻元素并根据需要交换它们的位置来完成排序。每一...

    C#排序算法总结

    C#排序算法总结涵盖了交换排序和插入排序两大类排序算法,其中交换排序包括了冒泡排序、选择排序和快速排序,而插入排序则涉及直接插入排序和折半插入排序。下面将详细介绍每种排序算法的实现原理、特点以及在C#中的...

    c#+排序算法大全+经典算法

    本资料包"**c#+排序算法大全+经典算法**"显然是一个关于C#实现各种排序算法的集合,包括但不限于常见的快速排序、归并排序、冒泡排序、插入排序、选择排序以及更高效的算法如堆排序和计数排序等。 1. **快速排序**...

    快速排序算法(c#实现)

    总的来说,快速排序是一种非常重要的排序算法,理解其工作原理并能用C#或其他编程语言实现,对于提升编程技能和解决问题的能力大有裨益。在实际项目中,根据具体场景选择合适的排序算法是优化程序性能的关键。

    C#实现所有经典排序算法

    C#实现所有经典排序算法 本文将对C#实现的所有经典排序算法进行详细的讲解和分析,从选择排序、冒泡排序、快速排序等开始,讲解每种排序算法的原理、优缺点、实现代码和时间复杂度等方面。 一、选择排序 选择排序...

    C#简单的排序算法可视化程序

    总的来说,这个C#排序算法可视化程序是一个很好的学习工具,可以帮助开发者和学生更好地理解和掌握排序算法的工作原理。通过解决运行卡死的问题,这个程序将能够提供更加优质的教学体验。同时,这也提醒我们在开发...

    C# 经典排序算法大全和二分查找算法

    本资源“C#经典排序算法大全和二分查找算法”提供了多种经典的排序算法实现,以及C#中的二分查找算法。让我们深入探讨这些算法的原理、实现方式以及它们在实际开发中的应用。 首先,我们来看一下排序算法。排序是将...

    c#各种排序算法大全

    根据提供的标题、描述以及部分代码内容,我们可以总结出与C#中的各种排序算法相关的知识点。首先,虽然示例代码是用Java编写的,但我们可以将其转换为C#的知识点,并探讨这些排序算法如何在C#中实现。 ### 常见排序...

    ★【C#常用排序算法大全】★.

    【C#常用排序算法大全】包括了四种基本的排序算法:冒泡排序、选择排序、插入排序和希尔排序。这些算法都是在计算机科学中广泛使用的,对于理解和优化数据处理至关重要。 1. **冒泡排序**: 冒泡排序是一种简单的...

Global site tag (gtag.js) - Google Analytics