`
dwphper
  • 浏览: 18594 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

C#四种排序算法

    博客分类:
  • .NET
阅读更多

 冒泡排序

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();

} }

}

选择排序

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();

} }

}

插入排序

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();

} }

}

希尔排序

 希尔排序是将组分段,进行插入排序.

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();

} }

}

分享到:
评论

相关推荐

    C#四种排序算法 算法最牛逼

    下面将详细阐述这四种排序算法的原理、实现方式以及它们各自的优缺点。 1. 冒泡排序(Bubble Sort) 冒泡排序是最简单的排序算法之一,通过不断交换相邻的两个不正确顺序的元素,逐步将最大的元素“冒”到数组的...

    C#四种排序算法(冒泡排序)

    这四种排序算法各有特点,适用不同的场景。 1. **冒泡排序**: 冒泡排序是一种简单的排序算法,通过不断交换相邻两个元素的位置来逐步排序。在C#代码中,`BubbleSorter`类实现了冒泡排序。它通过一个外层循环控制...

    经典算法-C#四种排序算法

    根据给定的信息,本文将详细介绍C#中的四种经典排序算法:冒泡排序(Bubble Sort)、选择排序(Selection Sort)、插入排序(Insertion Sort)以及希尔排序(Shell Sort)。这些算法在计算机科学领域有着广泛的应用...

    C#四种排序算法 冒泡排序、选择排序、插入排序和希尔排序

    ### C#中的四种排序算法详解 #### 一、冒泡排序 冒泡排序是一种简单的排序算法,它重复地遍历待排序的数列,依次比较相邻的两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复进行的,直到没有...

    C#的四种排序算法的源代码

    这里我们讨论的是四种常见的排序算法:冒泡排序、选择排序、插入排序以及希尔排序。这些算法各有其特点,适用于不同场景。 首先,让我们逐一了解这四种排序算法。 1. **冒泡排序**(Bubble Sort): 冒泡排序是一...

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

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

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

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

    C#排序算法(C#)

    本文将深入探讨C#语言中常见的几种排序算法,包括它们的工作原理、性能特点以及如何在C#代码中实现。 1. **冒泡排序**: 冒泡排序是一种简单的排序算法,通过重复遍历数组,比较相邻元素并交换位置来完成排序。在...

    C#常用排序算法

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

    c#实现快速排序算法

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治法(Divide and Conquer),通过选择一个基准元素,将待排序序列分为两个子序列,使得一个子序列的所有元素都比基准...

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

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

    C#实现的常见排序算法(博客的Demo)

    本篇文章将详细探讨C#实现的四种常见排序算法:冒泡排序、选择排序、快速排序和插入排序。 1. **冒泡排序**: 冒泡排序是一种简单的交换排序,通过不断比较相邻元素并交换位置,使较大的元素逐渐“浮”到数组的...

    C#排序算法详解.rar

    在编程领域,排序算法是计算机科学中...通过阅读“C#排序算法详解”这份资料,你将能够深入了解每种算法的工作原理,学习如何在实际项目中灵活运用。同时,对于面试和日常开发来说,了解和熟悉排序算法都是非常有益的。

    c# 实现各种排序算法

    该代码是本人为写数据结构与算法--》排序所实现的代码。 代码使用c#实现,所有代码都已测试可用。

    c#实现选择排序算法

    选择排序是一种简单直观的排序算法,它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。在C#中实现选择排序,我们可以利用其强大的面向...

    用C#实现的排序算法

    根据提供的文件信息,我们可以深入探讨在C#中实现的不同类型的排序算法。这些排序算法包括选择排序、冒泡排序、快速排序、插入排序以及希尔排序。接下来将逐一介绍这些排序算法的具体实现及其工作原理。 ### 1. ...

    c#实现基本排序算法

    本文将详细探讨C#语言中实现的几种基本排序算法,包括冒泡排序、鸡尾酒排序(双向冒泡)、选择排序、插入排序、希尔排序、堆排序和归并排序。 首先,我们来看**冒泡排序**,它是最简单的排序算法之一。通过不断交换...

    c#实现各种排序算法动态演示

    在C#编程语言中,实现各种排序算法是一个重要的学习环节,尤其对于计算机科学的学生和开发者来说,理解并能实际操作这些算法是提升编程能力的关键。本文将深入探讨C#实现的排序算法及其动态演示,主要关注以下几个...

    C#实现各种排序算法

    C#实现各种排序算法,有代码,包括冒泡,选择,快速,插入,希尔,归并,基数等排序算法代码

Global site tag (gtag.js) - Google Analytics