排序与查找的最好算法
来源:互联网 发布:电脑的网络图标不见了 编辑:程序博客网 时间:2024/04/29 16:48
排序与查找算法有很多种,我们不必全部记住它,只需记住最快的方法就好了(当然,你也可以用c#自带的方法或者Linq,这不在本文讨论之列)
直接上代码:
/// <summary> /// 折半查找 /// </summary> /// <param name="dDataList"></param> /// <param name="data"></param> /// <returns></returns> public static int BinarySearch(List<int> dDataList, int data, int low, int high) { int mid = (low + high) / 2; if (dDataList[mid] == data) return mid; if (low > high) return -1; if (data < dDataList[mid]) return BinarySearch(dDataList, data, low, mid - 1); else return BinarySearch(dDataList, data, mid + 1, high); }
/// <summary> /// 快速排序 /// </summary> /// <param name="dDataList"></param> /// <param name="low"></param> /// <param name="high"></param> public static void QuickSort(ref List<int> dDataList, int low, int high) { if (low >= high) return; int temp = dDataList[low];//以a[low]为枢纽值 int i = low, j = high; //一趟快速排序 while (i < j) {//双向扫描 while (i < j && dDataList[j] >= temp) j--; dDataList[i] = dDataList[j]; while (i < j && dDataList[i] <= temp) i++; dDataList[j] = dDataList[i]; } dDataList[i] = temp;//放置枢纽值 //分别对左边、右边排序 QuickSort(ref dDataList, low, i - 1); QuickSort(ref dDataList, i + 1, high); }
0 0
- 排序与查找的最好算法
- 常用的查找与排序算法
- 学习笔记---排序与查找的算法
- 位图算法排序与查找
- 算法学习--排序与查找
- 算法基础:排序与查找
- 各种排序算法的最好最坏情况
- 最好的八大排序算法Java
- python笔记:简单的查找与排序算法
- 数据结构与算法--查找与排序
- 所有的排序、查找算法
- 所有的排序、查找算法
- 基础的排序查找算法
- python数据结构与算法27 排序与查找 顺序查找
- 二分查找算法与快速排序
- 算法笔记之常用查找与排序
- 数据结构与算法练习-数组查找,排序
- --1 排序与查找 基础算法
- java反射
- 第33讲项目2——求阶乘
- QQ群中一次问答面试题,供大家借鉴,哈哈
- 21. Merge Two Sorted Lists
- 学习Discuz! X3.2记录:又一个插件制作过程,主导航中增加一个连接(用简单模板重定向)
- 排序与查找的最好算法
- DLL获取当前文件目录和DLL调试方法
- BestCoder Round #75-King's Cake(模拟)
- Android 5.x之 Notification
- Java虚拟机内存模型
- 我的第一个C++程序
- 多线程 : 进程同步
- Java泛型通配符super使用Demo
- MR代码实例-wordcount