• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#几种排序算法

C#几种排序算法

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#快速排序算法,c#排序算法,c#冒泡排序算法代码,c#冒泡排序算法,c#选择排序算法等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
作者:Sabine 【导读】本文介绍了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-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(); 

} } 

} 



 


快速排序

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

namespace SoloDataStructure
{
    class MyQuickSort
    {
        /**//// <summary>
        /// 快速排序算法
        /// </summary>
        /// 快速排序为不稳定排序,时间复杂度O(nlog2n),为同数量级中最快的排序方法
        /// <param name="arr">划分的数组</param>
        /// <param name="low">数组低端上标</param>
        /// <param name="high">数组高端下标</param>
        /// <returns></returns>
        static int Partition(int[] arr, int low, int high)
        {
            //进行一趟快速排序,返回中心轴记录位置
           // arr[0] = arr[low];
            int pivot = arr[low];//把中心轴置于arr[0]
            while (low < high)
            {
                while(low<high && arr[high]>=pivot)
                --high;
            //将比中心轴记录小的移到低端
            Swap(ref arr[high],ref arr[low]);
                while(low<high && arr[low]<=pivot)
                ++low;
            Swap(ref arr[high],ref arr[low]);
           //将比中心轴记录大的移到高端
            }
            arr[low] = pivot; //中心轴移到正确位置
            return low;  
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#递归算法之快速排序
  • C#使用自定义算法对数组进行反转操作的方法
  • C#实现协同过滤算法的实例代码
  • C#数据结构与算法揭秘二 线性结构
  • C#数据结构与算法揭秘一
  • C#数据结构与算法揭秘二
  • C# 排序算法之堆排序
  • C#排序算法之快速排序
  • C#几种排序算法

相关文章

  • 2017-05-28C#实现PDF文件添加图片背景
  • 2017-05-28c#多线程的应用全面解析
  • 2017-05-28IIS下调用证书出现异常的解决方法 (C#)
  • 2017-05-28详解C#中的属性和属性的使用
  • 2017-05-28C# 6.0 新特性汇总
  • 2017-05-28C#实现判断当前操作用户管理角色的方法
  • 2017-05-28C#绘制飞行棋地图小程序
  • 2017-05-28谈谈C# replace在正则表达式中的意义
  • 2017-05-28c# 中文转拼音without CJK
  • 2017-05-28C#泛型Dictionary的用法实例详解

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#实现Windows Form调用R进行绘图与显示的方法
    • C#窗体读取EXCEL并存入SQL数据库的方法
    • C#编程自学之开篇介绍
    • C#简单创建和删除目录的方法
    • 将DataTable转换成List&lt;T&gt;实现思路及示例代码
    • 深入理解C# DateTime日期格式化
    • C#静态变量与实例变量实例分析
    • C#简易图片格式转换器实现方法
    • C#类的多态性详解
    • C# winfrom实现读取修改xml

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有