郭忠南
(无锡机电高等职业技术学校,江苏 无锡 214028)
当一个程序开始运行时,它就是一个进程。线程是进程中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务。在本质和结构上来说,.NET是一个多线程的环境,多线程编程技术在.NET中具有相当重要的地位。
三种最基本的排序方法是冒泡法、选择法和快速排序法,它们的平均时间复杂度分别是:O(n2)、O(n2)和 O(nlogn),其中 n 为待排序元素的数目。关于时间复杂度,此处只给出一种形象的解释:O(n)可理解为 n 的常数倍,则 O(n2)为 n2 的常数倍,O(nlogn)为nlogn的常数倍。由于nlogn比n2小得多,所以快速排序的速度显然优于其它两者。冒泡排序与选择排序的平均时间复杂度是一样的,似乎二者的速度应该接近,但是冒泡排序算法中数据移动的次数多于选择排序,导致选择排序比冒泡排序速度要快。为了阐述方便,设定待排序的数据均为整数,排序的结果是从小到大排列。
冒泡法的原理很简单,基本思想就是比较相邻的两个数据,若前者比后者大则交换,若前者比后者小则保持不变。也就是将第一个数据与第二个数据比较,然后是第二个与第三个,直到倒数第二个与最后一个数据比较。这是第一趟冒泡排序,其结果是使得最大的数据被安置到最后一个位置上。……