一、冒泡排序(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#中的排序算法,以及如何在Visual Studio 2005(VS05)环境下编写和应用这些算法。 1. **基础排序算法** - **冒泡排序**:最简单的排序算法之一,通过重复遍历数组比较并交换相邻元素来实现排序。...
在编程领域,排序算法是数据处理的核心部分,尤其是在C#这样的高级编程语言中。本文将深入探讨C#中常见的四种排序算法:冒泡排序、选择排序、插入排序和希尔排序,以及它们的实现细节和应用场合。 首先,我们来看**...
本文将深入探讨标题所提及的几种C#排序算法:冒泡排序、选择排序、插入排序以及希尔排序。这些算法不仅在理论上有其独特价值,而且在实际开发中也常常被用作理解复杂算法的基础。 首先,我们来看**冒泡排序**。冒泡...
根据提供的文件信息,我们可以归纳出以下C#中的几种排序算法及其相关知识点: ### 1. 冒泡排序(Bubble Sort) 冒泡排序是一种简单的排序算法。它重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就...
在编程领域,排序算法是数据结构与算法中的基础部分,对于C#开发者来说,掌握不同的排序算法至关重要。本文将深入探讨C#语言中常见的几种排序算法,包括它们的工作原理、性能特点以及如何在C#代码中实现。 1. **...
本资料“C#排序算法详解”聚焦于如何在C#中实现各种排序算法,帮助学习者深入理解并提升编程技能。 1. **冒泡排序**:冒泡排序是一种简单的排序算法,通过重复遍历数组,比较相邻元素并交换位置来完成排序。C#实现...
c#排序算法 经典c#排序算法 经典c#排序算法 经典c#排序算法 经典c#排序算法 经典c#排序算法 经典c#排序算法 经典c#排序算法 经典c#排序算法 经典c#排序算法 经典c#排序算法 经典c#排序算法 经典
《C#排序算法的动态演示系统深度解析》 在编程领域,排序算法是不可或缺的基础,尤其是在C#这样的高级编程语言中。本系统专注于C#排序算法的动态演示,旨在通过直观的方式帮助开发者理解和掌握各种排序算法的工作...
以下是四种常见的C#排序算法:冒泡排序、选择排序、插入排序和希尔排序的详细解释。 1. **冒泡排序**: 冒泡排序是一种简单的交换排序,通过重复遍历数组,比较相邻元素并根据需要交换它们的位置来完成排序。每一...
C#排序算法总结涵盖了交换排序和插入排序两大类排序算法,其中交换排序包括了冒泡排序、选择排序和快速排序,而插入排序则涉及直接插入排序和折半插入排序。下面将详细介绍每种排序算法的实现原理、特点以及在C#中的...
本资料包"**c#+排序算法大全+经典算法**"显然是一个关于C#实现各种排序算法的集合,包括但不限于常见的快速排序、归并排序、冒泡排序、插入排序、选择排序以及更高效的算法如堆排序和计数排序等。 1. **快速排序**...
总的来说,快速排序是一种非常重要的排序算法,理解其工作原理并能用C#或其他编程语言实现,对于提升编程技能和解决问题的能力大有裨益。在实际项目中,根据具体场景选择合适的排序算法是优化程序性能的关键。
C#实现所有经典排序算法 本文将对C#实现的所有经典排序算法进行详细的讲解和分析,从选择排序、冒泡排序、快速排序等开始,讲解每种排序算法的原理、优缺点、实现代码和时间复杂度等方面。 一、选择排序 选择排序...
总的来说,这个C#排序算法可视化程序是一个很好的学习工具,可以帮助开发者和学生更好地理解和掌握排序算法的工作原理。通过解决运行卡死的问题,这个程序将能够提供更加优质的教学体验。同时,这也提醒我们在开发...
本资源“C#经典排序算法大全和二分查找算法”提供了多种经典的排序算法实现,以及C#中的二分查找算法。让我们深入探讨这些算法的原理、实现方式以及它们在实际开发中的应用。 首先,我们来看一下排序算法。排序是将...
根据提供的标题、描述以及部分代码内容,我们可以总结出与C#中的各种排序算法相关的知识点。首先,虽然示例代码是用Java编写的,但我们可以将其转换为C#的知识点,并探讨这些排序算法如何在C#中实现。 ### 常见排序...
【C#常用排序算法大全】包括了四种基本的排序算法:冒泡排序、选择排序、插入排序和希尔排序。这些算法都是在计算机科学中广泛使用的,对于理解和优化数据处理至关重要。 1. **冒泡排序**: 冒泡排序是一种简单的...