手机
当前位置:查字典教程网 >编程开发 >C#教程 >C#中使用快速排序按文件创建时间将文件排序的源码
C#中使用快速排序按文件创建时间将文件排序的源码
摘要:快速排序类usingSystem;usingSystem.Data;usingSystem.Configuration;usingSyste...

快速排序类

usingSystem;

usingSystem.Data;

usingSystem.Configuration;

usingSystem.Web;

usingSystem.Web.Security;

usingSystem.Web.UI;

usingSystem.Web.UI.WebControls;

usingSystem.Web.UI.WebControls.WebParts;

usingSystem.Web.UI.HtmlControls;

usingSystem.IO;

///<summary>

///快速排序算法

///</summary>

publicclassMyQuickSort

{

publicMyQuickSort()

{

//

//TODO:Addconstructorlogichere

//

}

///<summary>

///快速排序算法

///</summary>

///快速排序为不稳定排序,时间复杂度O(nlog2n),为同数量级中最快的排序方法

///<paramname="arr">划分的数组</param>

///<paramname="low">数组低端上标</param>

///<paramname="high">数组高端下标</param>

///<returns></returns>

staticintPartition(FileInfo[]arr,intlow,inthigh)

{

//进行一趟快速排序,返回中心轴记录位置

//arr[0]=arr[low];

FileInfopivot=arr[low];//把中心轴置于arr[0]

while(low<high)

{

while(low<high&&arr[high].CreationTime<=pivot.CreationTime)

--high;

//将比中心轴记录小的移到低端

Swap(refarr[high],refarr[low]);

while(low<high&&arr[low].CreationTime>=pivot.CreationTime)

++low;

Swap(refarr[high],refarr[low]);

//将比中心轴记录大的移到高端

}

arr[low]=pivot;//中心轴移到正确位置

returnlow;//返回中心轴位置

}

staticvoidSwap(refFileInfoi,refFileInfoj)

{

FileInfot;

t=i;

i=j;

j=t;

}

///<summary>

///快速排序算法

///</summary>

///快速排序为不稳定排序,时间复杂度O(nlog2n),为同数量级中最快的排序方法

///<paramname="arr">划分的数组</param>

///<paramname="low">数组低端上标</param>

///<paramname="high">数组高端下标</param>

publicstaticvoidQuickSort(FileInfo[]arr,intlow,inthigh)

{

if(low<=high-1)//当arr[low,high]为空或只一个记录无需排序

{

intpivot=Partition(arr,low,high);

QuickSort(arr,low,pivot-1);

QuickSort(arr,pivot+1,high);

}

}

}

如使用其它排序算法请参考:http://www.yaosansi.com/blog/article.asp?id=980

使用方法:

System.IO.DirectoryInfodir=newDirectoryInfo(currentFolder);

System.IO.FileInfo[]files=dir.GetFiles();

MyQuickSort.QuickSort(files,0,files.Length-1);//按时间排序

使用后:

如果files的长度大于0,那么files[0]为创建时间最新的文件.

【C#中使用快速排序按文件创建时间将文件排序的源码】相关文章:

c# asp .net 动态创建sql数据库表的方法

c# 生成随机时间的小例子

比较有效的使用C#读取文件的代码

C#自动创建数据库实现代码

Windows 8 Metro用C#连接SQLite及创建数据库,数据表的增删改查的实现

C#中实现任意List的全组合算法代码

C#中关于zip压缩解压帮助类的封装 附源码下载

使用 C# 动态编译代码和执行的代码

使用C# Winform应用程序获取网页源文件的解决方法

C# Winform 调用系统接口操作 INI 配置文件的代码

精品推荐
分类导航