实现泛型数组的冒泡排序算法 C#
public static class BubbleSortTool
{
public static void BubbleSort<T>(this T[] array, AscendingorDescending ascendingorDescending) where T:IComparable
{
switch (ascendingorDescending)
{
case AscendingorDescending.ascending:
{
while (!SortCompleteChecK(array, AscendingorDescending.ascending))
{
for (int i = ; i < (array.Length - ); i++)
{
if (array[i].CompareTo(array[i + ]) > )
{
T temp = array[i];
array[i] = array[i + ];
array[i + ] = temp;
}
}
}
}
break;
case AscendingorDescending.descending:
{
while (!SortCompleteChecK(array, AscendingorDescending.ascending))
{
for (int i = ; i < (array.Length - ); i++)
{
if (array[i].CompareTo(array[i + ]) < )
{
T temp = array[i];
array[i] = array[i + ];
array[i + ] = temp;
}
}
}
}
break;
default:
break;
}
} private static bool SortCompleteChecK<T>(T[] array, AscendingorDescending ascendingorDescending) where T : IComparable
{
switch (ascendingorDescending)
{
case AscendingorDescending.ascending:
{
for (int i = ; i < (array.Length-); i++)
{
if (array[i].CompareTo(array[i + ]) > )
{
return false;
}
}
return true;
}
break;
case AscendingorDescending.descending:
{
for (int i = ; i < (array.Length - ); i++)
{
if (array[i].CompareTo(array[i + ]) < )
{
return false;
}
}
return true;
}
break;
default:
{ throw new Exception(); }
break;
} } public enum AscendingorDescending
{
ascending,descending
} public static void Print<T>(this T[] array)
{
StringBuilder sb = new StringBuilder();
for (int i = ; i < array.Length; i++)
{
sb.Append(array[i]);
sb.Append(" ");
}
Console.WriteLine(sb);
}
public static void Print<T>(this T[] array,String prompt)
{
StringBuilder sb = new StringBuilder();
sb.Append(prompt);
for (int i = ; i < array.Length; i++)
{
sb.Append(array[i]);
sb.Append(" ");
}
Console.WriteLine(sb);
}
}
实现泛型数组的冒泡排序算法 C#的更多相关文章
- 数据结构之------C++指针冒泡排序算法
C++通过指针实现一位数组的冒泡排序算法. 冒泡排序 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法. 代码: /* Name:冒泡排序算法 Copyright:Null ...
- Java中数组的几个常用算法:插入算法,删除算法,冒泡排序算法
前言: 在Java中我们常常会用数组,提到数组就不得不介绍数组中常用到的几个算法. 有插入算法,删除算法,冒泡排序算法等. 在学习这几个数组的算法前,我们先来了解一下关于数组一些基本知识. 数组的基本 ...
- C#冒泡排序算法
用了两种形式的数据,一个是泛型List,一个是数据int[].记录一下,作为自己学习过程中的笔记. using System; using System.Collections.Generic; us ...
- 冒泡排序算法(C#实现)
简单的冒泡排序算法,代码如下: ] = temp; hasExchangeAction =true; //发生过互换 } } if (!hasExchangeAction) //如果没有发生过互换,则 ...
- PHP实现冒泡排序、双向冒泡排序算法
冒泡排序(Bubble Sort),是一种较简单的.稳定的排序算法.冒泡排序算法步骤:比较相邻的元素,如果第一个比第二个大,就交换他们两个的位置:对每对相邻的元素执行同样的操作,这样一趟下来,最后的元 ...
- java:高速排序算法与冒泡排序算法
Java:高速排序算法与冒泡算法 首先看下,冒泡排序算法与高速排序算法的效率: 例如以下的是main方法: /** * * @Description: * @author:cuiyaon ...
- Java数组的排序算法
在Java中,实现数组的排序算法有很多,如冒泡排序法.选择排序法.直接插入法和快速排序法等.下面介绍几种排序算法的具体 实现. 本文引用文献:Java必须知道的300个问题. 1.冒泡排序法 1.1 ...
- C语言数组之冒泡排序+折半查找法(二分查找)
冒泡排序算法 将相邻的元素进行两两比较,大的向后"冒", 小的向前"赶". 口诀: N个数字来排队,两两比较小靠前 外层循环N-1(控制需要比较的轮数). 内层 ...
- php中的冒泡排序算法
<?php //php中的冒泡排序算法 //从大到小的排序方式 ,$arr[$j]>$arr[$j+1](这里换成了从小到大的排序方式) $arr=array(); $arr=array( ...
随机推荐
- WPF 网易云音乐PC端
简介 (1)左侧菜单采用 Expander+RadioButton: MVVM 绑定 后台的一个Menu 属性(使用转换器) (2)右侧采用Frame绑定Page的方式 ## [更新日志] ### 1 ...
- 关于Entity Framework的概念及搭建
什么是EF? ADO.NET Entity Framework 是一个对象-关系的映射架构. 它支持直接定义完全独立于数据库结构的实体类,并把它们映射到数据库的表和关系上. 三种编程模型: 数据库优先 ...
- XML hexadecimal value 0x__, is an invalid character
XML操作时异常:(十六进制值 0x__) 是无效的字符. 方法一: 设置 CheckCharacters=false. XmlReaderSettings xmlReaderSettings = n ...
- Spring AOP 源码分析系列文章导读
1. 简介 前一段时间,我学习了 Spring IOC 容器方面的源码,并写了数篇文章对此进行讲解.在写完 Spring IOC 容器源码分析系列文章中的最后一篇后,没敢懈怠,趁热打铁,花了3天时间阅 ...
- ubuntu14.04 下出现 libmysqlclient.so.20 找不到问题
解决办法: apt-get install libzdb-dev
- 同一域名基于源ip地址分配给不同ip的dns配置--bind9.8.2
1.安装bind.略. 2./etc/named.conf配置文件. // named.conf // // Provided by Red Hat bind package to configure ...
- C#6.0语言规范(八) 语句
C#提供了各种语句.大多数这些语句对于使用C和C ++编程的开发人员来说都很熟悉. statement : labeled_statement | declaration_statement | em ...
- flask——包含,继承,宏
包含,继承,宏 都是为了提高代码的效率,都是为了防止代码的沉余,浪费资源 宏(macro) 可以把它看做Jinja2中的一个函数,他会返回一个模板或者HTML字符串,为了避免反复的编写同样的模板代 ...
- python socket 编程简单入门
想讲讲套接字的概念 套接字,即英文socket的中文意译,起源于20世纪70年代,是加利福利亚大学的伯克利版本UNIX(称为BSD UNIX)的一部分.目的是实现主机上运行的一个程序与另一个运行的程序 ...
- 剑指offer十二之数值的整数次方
一.题目 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 二.思路 1.传统方法计算,时间复杂度O(n) 2.递归方式计算,时间复杂度O ...