实现泛型数组的冒泡排序算法 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( ...
随机推荐
- 第5件事 做一个有taste的产品人
1.taste的意思是品位,也就是说产品经理应该是一个有品位的产品人.什么叫品位呢?品位指的是对事物有分辨与鉴赏的能力.品位是形象的展示,品位是内在气质的复出,品位是人生价值的体验,品位是道德修养的内 ...
- winfrom图片放大器
废话不多说,直接上图看效果,左上角是原图片大小,右边是局部放大的效果 主要代码贴在下面,picBox是原图控件名,picBox_Show是放大控件名 private void picBox_Paint ...
- Redis常见使用说明
1 概述Remote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统.Redis是一个开源的使用ANSI C语言编写. ...
- Palindrome II
Problem Statement Given a string s, partition s such that every substring of the partition is a pali ...
- Linux系统CentOS 7配置Spring Boot运行环境
从阿里云新买的一台Linux服务器,用来部署SpringBoot应用,由于之前一直使用Debian版本,环境配置有所不同,也较为繁琐,本文主要介绍CentOS下配置SpringBoot环境的过程 新建 ...
- 27_网络编程-初识socket
一.C/S B/S 架构 1.定义 (1)C/S结构,即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Cl ...
- Windows 64位系统安装Apache2.4
Windows 64位系统安装Apache2.4 来自:百度经验:jingyan.baidu.com 现在大部分一键安装包多是32位的,并不支持64位,直接在64位的系统上使用会报错的,所以我这里就来 ...
- mybatis四大接口之 ResultSetHandler
1. 继承结构 2. ResultSetHandler public interface ResultSetHandler { // 将Statement执行后产生的结果集(可能有多个结果集)映射为结 ...
- 使用Nginx转发TCP/UDP数据
编译安装Nginx 从1.9.0开始,nginx就支持对TCP的转发,而到了1.9.13时,UDP转发也支持了.提供此功能的模块为ngx_stream_core.不过Nginx默认没有开启此模块,所以 ...
- 什么是NAT端口映射?
背景:我们访问百度的时候输入www.baidu.com出现的网站首页.发生了什么事情?百度它有服务器,IP地址是公网的,有自己的域名,所以你可以正常访问到百度(实际上访问的是IP地址+服务端口).如果 ...