文件名称:理解泛型-python3+opencv3识别图片中的物体并截取的方法
文件大小:10.59MB
文件格式:PDF
更新时间:2024-07-30 07:08:52
.net之美 关键技术解析
2.1 理解泛型 2.1.1 为什么要有泛型 不论大家通过什么方式进入了软件开发这个行业,都曾经面对数据结构和算法这个话 题。因为数据结构是计算机科学的一门基础学科,往往越是底层的部分,对数据结构或者算 法的时间效率和空间效率的要求就会越高。比方说,当在一个集合类型(例如ArrayList)的 实例上调用Sort()方法对它进行排序时,.NET框架在底层就采用了快速排序算法。.NET框架 中快速排序方法名称叫QuickSort(),位于Array类型中,可以通过Reflector.exe工具查看 到。 现在并不是要讨论QuickSort()实现得好不好,效率高还是不高,这偏离了本节的主题。 但是请大家思考一个问题:如果由你来实现一个排序算法,你会怎么做?我们把题目设定得 再窄一些,来实现一个最简单的冒泡排序(Bubble Sort)算法,如果你没有使用泛型的经 验,可能会毫不犹豫地写出下面的代码来,因为这是大学教程的标准实现: public class SortHelper{ public void BubbleSort(int[] array) { int length = array.Length; for (int i = 0; i <= length - 2; i++) { for (int j = length - 1; j >= 1; j--) { // 对两个元素进行交换 if (array[j] < array[j - 1] ) { int temp = array[j]; array[j] = array[j - 1]; array[j - 1] = temp; } } } } } 对冒泡排序不熟悉的读者,可以放心地忽略上面代码的方法体,这不会对你理解泛型造 成任何的障碍,你只要知道它所实现的功能就可以了:将一个数组的元素按照从小到大的顺 序重新排列。现在对这个程序进行一个简单的测试: static void Main(string[] args) {