博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
泛型排序
阅读量:5771 次
发布时间:2019-06-18

本文共 3275 字,大约阅读时间需要 10 分钟。

hot3.png

 

namespace SortProject{    ///     /// 统一排序接口    ///     /// 
public interface ISort
where TElement : IComparable { TElement[] Sorting(); } ///
/// 冒泡排序法 /// ///
public class BubbleSort
: ISort
where TElement : IComparable { private TElement[] _dataArray; public BubbleSort(TElement[] dataArray) { _dataArray = dataArray; } public BubbleSort(List
dataArray) { _dataArray = dataArray.ToArray(); } public BubbleSort(IEnumerable
dataArray) { _dataArray = dataArray.ToArray(); } public TElement[] Sorting() { int lenght = _dataArray.Length; bool flag = false; //TElement temp; for (int i = 0; i < lenght && flag == false;i++) { flag = true; for (int j = 0; j < lenght - i - 1; j++) { if (_dataArray[j].CompareTo(_dataArray[j + 1]) > 0) { SortPublicFunction.Swap
(ref _dataArray[j], ref _dataArray[j + 1]); //temp = _dataArray.ElementAt(j + 1); //_dataArray[j + 1] = _dataArray[j]; //_dataArray[j] = temp; flag = false; } } } return _dataArray; } } ///
/// 快速排序法 /// ///
public class QuickSort
: ISort
where TElement : IComparable { private TElement[] _dataArray; public QuickSort(TElement[] dataArray) { _dataArray = dataArray; } public QuickSort(List
dataArray) { _dataArray = dataArray.ToArray(); } public QuickSort(IEnumerable
dataArray) { _dataArray = dataArray.ToArray(); } public TElement[] Sorting() { QuickSorting(_dataArray, 0, _dataArray.Length - 1); return _dataArray; } private void QuickSorting(TElement[] array, int s, int t) { int i, j; if (s < t) { i = s; j = t + 1; while (true) { do i++; while (!(array[s].CompareTo(array[i]) <= 0 || i == t)); do j--; while (!(array[s].CompareTo(array[j]) >= 0 || j == s)); if (i < j) { SortPublicFunction.Swap
(ref array[i], ref array[j]); } else { break; } } SortPublicFunction.Swap
(ref array[s], ref array[j]); QuickSorting(array, s, j - 1); QuickSorting(array, j + 1, t); } } }}//测试程序 static void Main(string[] args) { int[] da = new int[] { 22, 15, 11, 52, 27, 19, 29, 62, 18 }; Sort
(da); float[] da1 = new float[] { 0.98f, 243.98f, 29.0f, 0.87f, 76.87f, 4.19f, 23.29f, 0.62f, 18.98f }; Sort
(da1); char[] da2 = new char[] { '2', 'z', 'd', '3', '7', 'u', '8', 'c', 'a' }; Sort
(da2); string[] da3 = new string[] { "fef", "15", "1sdf", "asfr5", "59fjk", "d0ei", "0dex", "", "asdf_" }; Sort
(da3); List
da4 = new List
() { 15, 6, 9 }; Sort
(da4.ToArray()); Console.WriteLine(); Console.ReadKey(); } private static void Sort
(T[] array) where T : IComparable { //ISort
temp = new BubbleSort
(array); ISort
temp = new QuickSort
(array); T[] da1 = temp.Sorting(); foreach (T item in da1) { Console.Write("{0} ", item); } Console.WriteLine(); }//cmd测试结果PS C:\Users\××××××> AlgorithmsTest.exe11 15 18 19 22 27 29 52 620.62 0.87 0.98 4.19 18.98 23.29 29 76.87 243.982 3 7 8 a c d u z 0dex 15 1sdf 59fjk asdf_ asfr5 d0ei fef6 9 15

 

转载于:https://my.oschina.net/raddleoj/blog/753555

你可能感兴趣的文章
人生苦短
查看>>
安装nextant
查看>>
单点登录解决方案
查看>>
常用lua代码块
查看>>
Oracle11g 安装 -Linux
查看>>
android 广播分类
查看>>
JavaScript继承详解(六)
查看>>
date日期类型
查看>>
Codeforces Round #160 (Div. 2) A. Roma and Lucky Numbers
查看>>
JSP和Struts2、Hibernate、Spring3基础内容和原理
查看>>
’白帽子‘被起诉所见所想
查看>>
python获取文件
查看>>
翻译研讨 2009/10/17 财经新闻《国外投资再次向印度流动》
查看>>
PSP0级 周活动总结表+时间记录日志+缺陷记录日志 表格模板
查看>>
多种方式实现ul中的li居中的利弊
查看>>
mac安装brew和nginx
查看>>
UIButton
查看>>
Android获取各种设备的状态
查看>>
区块链开发_以太坊测试功能
查看>>
CodeChef November Challenge 2013 解题报告
查看>>