2012年12月26日

冒泡排序

摘要: 冒泡排序(Bubble Sort)是一种交换排序。基本思想是:每次(外循环)遍历序列都把最大(小)的元素放在最前面(通过内循环的“比较-交换”),然后再对剩下的序列重复这个过程,每次遍历之后待排序序列就少一个元素,直到排序完毕。因此,时间复杂度在最坏的情况下是O(N ^ 2)。算法实现及测试:#include <iostream>using namespace std;// 冒泡排序void BubbleSort(int data[], int count){ int auxiliary = 0; bool swap_flag = true; for (int i = 0; ... 阅读全文

posted @ 2012-12-26 18:11 zhuyf87 阅读(494) 评论(1) 推荐(1) 编辑

外排序

摘要: 外排序(External sorting)是指能够处理极大量数据的排序算法。通常来说,外排序处理的数据不能一次装入内存,只能放在读写较慢的外存储器(通常是硬盘)上。外排序通常采用的是一种“排序-归并”的策略。在排序阶段,先读入能放在内存中的数据量,将其排序输出到一个临时文件,依此进行,将待排序数据组织为多个有序的临时文件。然后在归并阶段将这些临时文件组合为一个大的有序文件,也即排序结果。外排序的一个例子是外归并排序(External merge sort),它读入一些能放在内存内的数据量,在内存中排序后输出为一个顺串(即是内部数据有序的临时文件),处理完所有的数据后再进行归并。比如,要对 90 阅读全文

posted @ 2012-12-26 16:13 zhuyf87 阅读(293) 评论(0) 推荐(0) 编辑

socket connect 函数设置超时

摘要: 使用Winsock connect函数,无法设置超时,而在连接一个不存在的主机时,将会阻塞至少要几十秒。其实在调用connect函数时,将socket设置为非阻塞,然后调用select函数,可以达到设置超时的效果。bool ConnectWithTimeout(SOCKET socket, char * host, int port, int timeout){ TIMEVAL timeval = {0}; timeval.tv_sec = timeout; timeval.tv_usec = 0; struct sockaddr_in address; ad... 阅读全文

posted @ 2012-12-26 12:39 zhuyf87 阅读(10143) 评论(0) 推荐(0) 编辑

导航