排序算法:

    class Sort
{
static void swap<T>(ref T a, ref T b)
{
T tmp = a;
a = b;
b = tmp;
} #region 冒泡排序
public static void Bubble(ref int[] arr)
{
for (int i = ; i < arr.Length - ; i++)
for (int j = i + ; j < arr.Length; j++)
if (arr[i] > arr[j])
swap(ref arr[i], ref arr[j]);
}
//其它数据类型同上
public static void Bubble(ref string[] arr)
{
for (int i = ; i < arr.Length - ; i++)
for (int j = i + ; j < arr.Length; j++)
if (arr[i].CompareTo(arr[j]) > )
swap(ref arr[i], ref arr[j]);
}
#endregion #region 选择排序
public static void Select(ref int[] arr)
{
for (int i = ; i < arr.Length; i++)
{
int min = i;
for (int j = i + ; j < arr.Length; j++)
if (arr[j] < arr[min])
min = j;
swap(ref arr[i], ref arr[min]);
}
}
//其它数据类型同上
#endregion #region 插入排序
public static void Insert(ref int[] arr)
{
for (int i = ; i < arr.Length; i++)
{
int tmp = arr[i];
int j = i;
while (j > && arr[j - ] >= tmp)
{
arr[j] = arr[j - ];
j--;
}
arr[j] = tmp;
}
}
//其它数据类型同上
#endregion
}

查找算法

    class Search
{
static void swap<T>(ref T a, ref T b)
{
T tmp = a;
a = b;
b = tmp;
} #region 顺序查找
public static int SeqIndex(int[] arr, int val)
{
for (int i = ; i < arr.Length; i++)
if (arr[i] == val)
return i;
return -;
}
public static int FindMin(int[] arr)
{
int min = arr[];
for (int i = ; i < arr.Length; i++)
if (arr[i] < min)
min = arr[i];
return min;
}
public static int FindMax(int[] arr)
{
int max = arr[];
for (int i = ; i < arr.Length; i++)
if (arr[i] > max)
max = arr[i];
return max;
} //自组织数据加快顺序查找速度,二八原则,常用的前移
public static int CustSeqIndex(ref int[] arr, int val)
{
for (int i = ; i < arr.Length; i++)
if (arr[i] == val)
{
if (i > arr.Length * 0.2)
{
swap(ref arr[i], ref arr[i - ]);
return i - ;
}
else return i;
}
return -;
}
#endregion #region 二叉查找 须对有序数组
public static int BinaryFind(int[] arr, int val)
{
int min = , max = arr.Length - ;
while (min <= max)
{
int mid = (min + max) / ;
if (arr[mid] < val)
min = mid + ;
else if (arr[mid] > val)
max = mid - ;
else return mid;
}
return -;
}
//用递归法重写上述功能,效率没上面循环方法高
public static int RBinaryFind(int[] arr, int val, int min, int max)
{
if (min > max)
return -;
else
{
int mid = (min + max) / ;
if (arr[mid] == val)
return mid;
else
{
if (arr[mid] < val)
min = mid + ;
else max = mid - ;
return RBinaryFind(arr, val, min, max);
}
}
}
#endregion
}

C# 基础排序与查找算法的更多相关文章

  1. java基础---数组的查找算法(2)

    一.查找的基本概念 查找分为有序查找和无序查找,这里均以数组为对象,有序查找指的是数组元素有序排列,无序查找指的是数组元素有序或无序排列 平均查找长度(Average Search Length,AS ...

  2. python基础一 ------排序和查找算法

    插入排序; 假设数组长度为n,先从第二个元素开始,与前一个元素比较,之后将较小的元素    放在前面,现在前两个元素是有顺序的,这时取第三个元素,与前一个元素(也就是第二个)比较,较小的放在前面   ...

  3. 面试常问的几个排序和查找算法,PHP实现

    冒泡,快排,二分查找,都是面试常问的几个算法题目,虽然简单,但是一段时间不用的话就很容易忘记,这里我用PHP实现了一下,温故而知新. 排序 冒泡排序 每一次冒出一个最大的值 function bubb ...

  4. [PHP] 排序和查找算法

    知乎:冒泡排序(bubble sort)的原理是什么? 潘屹峰: 冒泡排序的原理可以顾名思义:把每个数据看成一个气泡,按初始顺序自底向上依次对两两气泡进行比较,对上重下轻的气泡交换顺序(这里用气泡轻. ...

  5. C#常用排序和查找算法

    1.C#堆排序代码 private static void Adjust (int[] list, int i, int m) { int Temp = list[i]; int j = i * 2 ...

  6. python 排序和查找算法

    一.搜索 1.顺序查找 数据存储在具有线性或顺序关系的结构中时,可顺序访问查找 def sequential_search(ilist, item): pos = 0 while pos < l ...

  7. javascript排序 查找算法大全

    在pptv的实习结束了, 忙着找工作的事,顺便把数据结构的那本书重新复习了一遍.为了加深印象,特意把里面的常用的排序.查找算法用js写了一遍 具体的实例在我的github上,大家可以访问的: http ...

  8. Java面试宝典系列之基础排序算法

    本文就是介绍一些常见的排序算法.排序是一个非常常见的应用场景,很多时候,我们需要根据自己需要排序的数据类型,来自定义排序算法,但是,在这里,我们只介绍这些基础排序算法,包括:插入排序.选择排序.冒泡排 ...

  9. PHP数组基本排序算法和查找算法

    关于PHP中的基础算法,小结一下,也算是本博客的第一篇文章1.2种排序算法冒泡排序:例子:个人见解 5 6 2 3 7 9 第一趟 5 6 2 3 7 9 5 2 6 3 7 9 5 2 3 6 7 ...

随机推荐

  1. 《Matrix Computation 3rd》读书笔记——第2章 矩阵分析

  2. MSXML应用总结

    MSXML的DOM模型是符合W3C DOM标准的,而DOM API在Windows中以COM接口的形式提供,关于COM请大家查阅相关资料.简单来说,COM提供了一个环境和一套规则,使接口的设计实现到对 ...

  3. Python之路,day6-Python基础

    1.config 模块 import configparser conf = configparser.ConfigParser() conf[', 'Compression': 'yes', '} ...

  4. asp.net 设置网页过期

    /// <summary> /// 判断网页是否过期 /// </summary> /// <returns></returns> private bo ...

  5. JS正则截取两个字符串之间的字符串

    match方法 var str = "iid0000ffr"; var substr = str.match(/id(\S*)ff/); console.log(substr) 返 ...

  6. centos nginx server_name 配置域名访问规则

    今天配置Server_name时,希望禁用一些域名,应为这些域名我想让通过另外一个Server配置 server_name "~^((\w*[^w]{1}\w*)|w{1,2})\.hell ...

  7. 在工作有时候centos6.5系统使用rpm包安装mysql5.7出现的问题

    首先说明一下,我用的CentOS版本是6.6,64位.打印机驱动程序是两个rpm安装包:cndrvcups-common-2.60-1.x86_64.rpm和cndrvcups-capt-2.60-1 ...

  8. centos 7 安装zabbix3.0

    1.安装MySQL 从最新版本的linux系统开始,默认的是 Mariadb而不是mysql! 使用系统自带的repos安装很简单: # yum install -y mariadb mariadb- ...

  9. asp.net环境搭建

    win7 开启internet infornation server 勾选相应配置 管理设置里,新增网站,对网站进行配置,设置用户验证连接 根目录下,配置文件web.config

  10. Ill-conditioned covariance create

    http://www.mathworks.com/matlabcentral/answers/100210-why-do-i-receive-an-error-while-trying-to-gene ...