最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#幾種排序算法

 更新時間:2007年03月09日 00:00:00   作者:  
作者: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>
        /// 快速排序為不穩(wěn)定排序,時間復雜度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;  //返回中心軸位置
        }
        static void Swap(ref int i, ref int j)
        {
            int t;
            t = i;
            i = j;
            j = t;
        } 
        static void QuickSort(int[] arr,int low,int high)
        {
            if (low < high-1)//當 arr[low,high]為空或只一個記錄無需排序
            {
                int pivot = Partition(arr,low,high);
                QuickSort(arr,low,pivot-1);
                QuickSort(arr,pivot+1,high);

            }
        }
        static void Main(string[] args)
        {
            int[] arr=new int[]{54,62,99,14,28,1,8,77,99,3,110};
            QuickSort(arr, 0, arr.Length-1);
            Console.Write("Data After QuickSort:");
            foreach (int i in arr)
            {
                Console.Write(i+",");
            }
            Console.ReadLine();
        }
    }
}

相關文章

  • C#位移的介紹與例子

    C#位移的介紹與例子

    很多人提問,不知道C#位移,可能有些人在面試中也遇到過
    2013-04-04
  • C#關鍵字Check簡單介紹

    C#關鍵字Check簡單介紹

    這篇文章主要介紹了C#關鍵字Check功能描述及注意事項,checke關鍵字主要用于對整型類型算術運算和轉換顯式啟用溢出檢查,本文通過程序演示給大家詳細介紹,需要的朋友一起看看吧
    2022-04-04
  • 給c#添加SetTimeout和SetInterval函數

    給c#添加SetTimeout和SetInterval函數

    Javascript中的SetTimeout和SetInterval函數很方便,把他們移植到c#中來。
    2008-03-03
  • C#使用MiniExcel實現(xiàn)導入導出數據到Excel/CSV文件

    C#使用MiniExcel實現(xiàn)導入導出數據到Excel/CSV文件

    MiniExcel是一個簡單、高效避免OOM的.NET處理Excel查、寫、填充數據的工具,這篇文章主要介紹了C#如何使用MiniExcel實現(xiàn)導入導出數據到Excel/CSV文件,需要的可以參考下
    2024-02-02
  • C#實現(xiàn)的調用DOS命令操作類實例

    C#實現(xiàn)的調用DOS命令操作類實例

    這篇文章主要介紹了C#實現(xiàn)的調用DOS命令操作類,實例分析了C#調用系統(tǒng)常用DOS命令的相關技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • winform創(chuàng)建不規(guī)則窗體的方法

    winform創(chuàng)建不規(guī)則窗體的方法

    這篇文章主要介紹了winform創(chuàng)建不規(guī)則窗體的方法,涉及C#窗體創(chuàng)建的相關參數設置技巧,非常具有實用價值,需要的朋友可以參考下
    2015-09-09
  • C#連接藍牙設備的實現(xiàn)示例

    C#連接藍牙設備的實現(xiàn)示例

    本文主要介紹了C#連接藍牙設備的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-01-01
  • C#通過流寫入一行數據到文件的方法

    C#通過流寫入一行數據到文件的方法

    這篇文章主要介紹了C#通過流寫入一行數據到文件的方法,涉及C#針對文本文件讀寫的基本技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • 如何在c#中使用Zlib壓縮與解壓

    如何在c#中使用Zlib壓縮與解壓

    這篇文章主要介紹了如何在c#中使用Zlib壓縮與解壓,幫助大家更好的理解和學習使用c#,感興趣的朋友可以了解下
    2021-04-04
  • C#多線程傳遞參數及任務用法示例

    C#多線程傳遞參數及任務用法示例

    這篇文章主要介紹了C#多線程傳遞參數及任務用法,結合簡單實例形式分析了C#多線程的使用及相關的參數傳遞與任務創(chuàng)建等使用技巧,需要的朋友可以參考下
    2016-06-06

最新評論

犍为县| 广灵县| 行唐县| 长白| 天等县| 靖州| 天峨县| 汉阴县| 忻州市| 莱西市| 东平县| 新乡市| 从江县| 玛沁县| 特克斯县| 扎兰屯市| 太仓市| 镇赉县| 思茅市| 绵阳市| 怀化市| 临清市| 奉贤区| 松桃| 乌苏市| 丹寨县| 苏尼特左旗| 天峨县| 青河县| 九江市| 梓潼县| 宝坻区| 北海市| 清涧县| 余干县| 深泽县| 松原市| 昆山市| 万安县| 方城县| 固原市|