基于.NET多线程的几种排序算法的图形化实现

2012-07-16 06:43:38郭忠南
河北软件职业技术学院学报 2012年3期
关键词:排序程序效率

郭忠南

(无锡机电高等职业技术学校,江苏 无锡 214028)

0 引言

当一个程序开始运行时,它就是一个进程。线程是进程中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务。在本质和结构上来说,.NET是一个多线程的环境,多线程编程技术在.NET中具有相当重要的地位。

1 排序算法

三种最基本的排序方法是冒泡法、选择法和快速排序法,它们的平均时间复杂度分别是:O(n2)、O(n2)和 O(nlogn),其中 n 为待排序元素的数目。关于时间复杂度,此处只给出一种形象的解释:O(n)可理解为 n 的常数倍,则 O(n2)为 n2 的常数倍,O(nlogn)为nlogn的常数倍。由于nlogn比n2小得多,所以快速排序的速度显然优于其它两者。冒泡排序与选择排序的平均时间复杂度是一样的,似乎二者的速度应该接近,但是冒泡排序算法中数据移动的次数多于选择排序,导致选择排序比冒泡排序速度要快。为了阐述方便,设定待排序的数据均为整数,排序的结果是从小到大排列。

1.1 冒泡排序法

冒泡法的原理很简单,基本思想就是比较相邻的两个数据,若前者比后者大则交换,若前者比后者小则保持不变。也就是将第一个数据与第二个数据比较,然后是第二个与第三个,直到倒数第二个与最后一个数据比较。这是第一趟冒泡排序,其结果是使得最大的数据被安置到最后一个位置上。……

登录APP查看全文

猜你喜欢
排序程序效率
提升朗读教学效率的几点思考
甘肃教育(2020年14期)2020-09-11 07:57:42
恐怖排序
试论我国未决羁押程序的立法完善
人大建设(2019年12期)2019-05-21 02:55:44
节日排序
刻舟求剑
儿童绘本(2018年5期)2018-04-12 16:45:32
“程序猿”的生活什么样
英国与欧盟正式启动“离婚”程序程序
环球时报(2017-03-30)2017-03-30 06:44:45
创卫暗访程序有待改进
中国卫生(2015年3期)2015-11-19 02:53:32
跟踪导练(一)2
“钱”、“事”脱节效率低
中国卫生(2014年11期)2014-11-12 13:11:32