`
simonlaw
  • 浏览: 40706 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

几个典型的排序(C#)

阅读更多

冒泡排序

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
分享到:
评论

相关推荐

    C# 插入排序 冒泡排序 选择排序 快速排序 堆排序 归并排序 基数排序 希尔排序

    - C# 实现选择排序时,可以维护两个指针,一个记录当前未排序部分的最小值索引,另一个记录已排序部分的结束位置。 4. **快速排序**(Quick Sort): - 快速排序由C.A.R. Hoare提出,采用分治策略。选取一个...

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

    本文将深入探讨C#实现的排序算法及其动态演示,主要关注以下几个方面:快速排序、冒泡排序、选择排序、插入排序、归并排序以及希尔排序。 1. **快速排序**:快速排序是一种非常高效的排序算法,由英国计算机科学家C...

    C#各种排序算法代码

    以上就是C#中常见的几种排序算法的简要介绍,通过实际编写和运行这些代码,开发者可以更好地理解每种排序算法的运作机制,并在实际项目中根据需求选择合适的排序方法。这些算法的实现不仅可以提高编程技巧,也有助于...

    c#的几种典型算法

    以上就是C#中几种典型的算法应用,它们涵盖了排序、基本运算、数值计算以及字符串处理等多个方面。理解和掌握这些算法,不仅可以提升编程能力,也为解决更复杂的实际问题打下坚实基础。在实际编程实践中,我们可以...

    C#经典排序算法集所有经典的算法

    在C#中,一个典型的选择排序实现会用到一个辅助函数来找到数组中最小元素的索引,并进行交换操作。 3. **插入排序(Insertion Sort)**: 插入排序的工作原理类似于打扑克牌,新来的牌总是被插入到正确的位置。C#...

    常用排序PK 冒泡 快排 选择排序 基数排序 等

    本文将详细解析几种常见的排序算法:冒泡排序、快速排序、选择排序以及基数排序,并探讨它们的工作原理、效率和适用场景。 **冒泡排序**: 冒泡排序是一种简单直观的排序算法,通过比较相邻元素并交换位置来实现...

    C#实现激光点云的平面分割

    本项目专注于使用C#编程语言实现激光点云的平面分割,这是测绘技能大赛的一个典型任务。下面将详细介绍这一过程涉及的知识点。 首先,我们需要理解激光点云的基本概念。激光点云是由激光雷达(LiDAR)设备通过发射...

    C#读取CAD表格数据.zip

    这个过程通常涉及到几个关键知识点,包括C#编程基础、AutoCAD开发接口、Windows Forms(Winform)应用以及DWG文件格式的理解。 1. **C#编程基础**:C#是Microsoft开发的一种面向对象的编程语言,广泛用于构建桌面、...

    c#电子相册源代码含数据库

    在本项目中,"C#电子相册源代码含数据库"是一个典型的桌面应用程序示例,它展示了如何结合C#语言和数据库技术来创建一个功能丰富的个人或家庭相册管理系统。 首先,我们来看看C#电子相册的核心功能。源代码主要由...

    数据结构试题(C#版)

    题目可能涵盖了上述各种数据结构的概念、操作以及相关算法的实现,比如如何用C#编写一个堆排序算法,或者如何设计一个高效的哈希表等。通过解决这些问题,你会对C#中的数据结构有更深入的认识,并能更好地在实际编程...

    C# 做的员工管理系统

    一个典型的C# WinForm员工管理系统通常包含以下几个主要部分: 1. 数据模型:定义员工信息的数据结构,如Employee类,包含姓名、职位、入职日期等属性。 2. 数据访问层:处理与数据库的交互,如SQL Server或其他...

    C#网站留言板

    C#网站留言板是一个典型的应用于网站交互功能的小型项目,旨在为用户提供一个能够发布、查看和回复留言的平台。这种类型的留言板常见于各类论坛、博客和个人主页,是用户间进行交流的重要工具。 #### 二、关键组件...

    C#+Access 学习资源网实例2010

    根据压缩包子文件的文件名称列表,我们可以推断出该实例包含以下几个关键部分: 1. **LoginBar.ascx**:这可能是一个登录条组件,通常包含用户名和密码输入框以及登录按钮,用于用户身份验证。 2. **List.ascx**:...

    C# 魔塔源码

    在游戏编程中,以下几个关键知识点值得深入探讨: 1. **Windows Forms 应用程序**:魔塔游戏的图形界面基于Windows Forms,这是一种用于构建桌面应用的UI框架。你可以学习到如何创建控件、响应用户输入以及更新屏幕...

    印像留言系统(c#源代码)

    在Web开发领域,构建一个功能完备的留言系统是常见的需求,而“印像留言系统”便是一个典型的例子,它采用C#编程语言和ASP.NET框架实现,数据库部分选择了Access,这使得系统在小型应用中具有较高的易用性和实用性。...

    C#微软培训资料

    第一部分 C#语言概述.4 第一章 第一章第一章 第一章 .NET 编 编 编程语言 程语言编程语言 程语言 C#.4 1.1 Microsoft.NET——一场新的革命.4 1.2 .NET 与 C#.6 1.3 C#语言的特点.8 1.4 小 结 .11...

    自己公司出的C#面试题

    题目中给出的斐波那契数列问题是一个典型的递归应用。递归函数Foo实现了数列的计算,通过判断i的值来决定返回结果。 **委托**是C#中的一个重要概念,它允许我们传递方法作为参数,类似于指针。**事件**是基于委托的...

    C#winForm 聊天只能机器人(完整版)

    下面将详细介绍该项目的几个关键知识点: 1. **C#编程语言**:C#是微软开发的一种面向对象的编程语言,广泛用于开发Windows应用程序,包括桌面应用和Web应用。在这个项目中,C#被用来编写控制台和图形用户界面(GUI...

    C#开发典型模块大全(修订版) 第3章 SQL数据表提取器模块

    在《C#开发典型模块大全(修订版)》的第3章中,我们可能会深入探讨以下几个核心知识点: 1. ADO.NET基础:ADO.NET是.NET框架中用于数据库交互的库,它提供了连接、命令、数据适配器、数据集等组件,使得C#程序员...

Global site tag (gtag.js) - Google Analytics