- 博客(7)
- 收藏
- 关注
原创 如何解决wxFrame的key event不好使的问题。
用wxWidgets做个程序,弄了一上午,那个wxFrame上的KeyDown事件怎么也不响应。后来找来wxWidgets本身的一个简单例子,一个wxFrame,一个wxButton,当然,还有一个KeyDown事件。说来也奇怪,当我的焦点在button上时,wxFrame上的KeyDown就好使了,而不在button上时,就不好使了,不知道wxFrame的源码是怎么写的。 郁闷
2006-05-28 16:01:00 2384 1
原创 归并排序(merge sort)
归并排序(merge sort)体现了分治的思想,即将一个待排序数组分为两部分,对这两个部分进行归并排序,排序后,再对两个已经排序好的数组进行合并。这种思想可以用递归方式很容易实现。归并排序的时间复杂度为O(nlogn),空间复杂度为O(n)。实现代码如下:#include #include "common.h" void merge(int data[], int
2006-05-10 09:11:00 10597 3
原创 快速排序(quicksort)
快速排序(quicksort)是分治法的典型例子,它的主要思想是将一个待排序的数组以数组的某一个元素X为轴,使这个轴的左侧元素都比X大,而右侧元素都比X小(从大到小排序)。然后以这个X在变换后数组的位置i分为左右两个子数组,再分别进行快速排序,直到子数组中只有一个元素为止。快速排序算法如下void quicksort(int A[], int p, int r){ int i;
2006-05-06 10:37:00 4066
原创 希尔排序(shellsort)
希尔排序(shellsort)又叫增量递减(diminishing increment)排序,是由D.L. Shell发明的,这个算法是通过一个逐渐减小的增量使一个数组逐渐趋近于有序从而达到排序的目的。 假设有一个数组int data[16] = {...}。 首先将这个增量设为16 / 2 = 8, 这样就将这个数组分成了8个子数组,它们的索引是0, 8 1, 9
2006-05-05 11:50:00 3585 3
原创 选择排序(selection sort)
从字面上理解,就是通过不断地选择数组元素,从而达到排序的目的。我插入排序类似,假设第i(i算法的时间复杂度为O(n^2)。算法的实现如下#include void output_array(int data[], int n){ int i; for(i = 0; i printf("%d ", data[i]); printf("/n");}void s
2006-05-05 11:32:00 2192
原创 插入排序(insertion sort)
插入排序算法的原理很简单,首先将数组的第一个数data[0]看成是有序的,然后从第二个元素开始和它前面的元素进行比较,如果从前面的某一个数大,就交换。由于前面的元素是有序的,所以就使有序元素的个数逐渐增大,直到等于n。插入排序的时间复杂度为O(n^2)。算法的c实现如下:#include void output_array(int data[], int n){ int i;
2006-05-05 11:19:00 2569
原创 冒泡排序(bubble sort)
冒泡排序是最基本的排序算法,常被做为内部排序的第一个排序算法进行讲解。它的原理非常简单,只是一个两层循环,每次将最大或最小的放到数组最后。算法如下(b为数组的起始位置, e为数组的结果位置):int bubble(int data[], int b, int e){ int i, j, n = 0; for(i = e; i > b; i--) for(j = b; j
2006-05-02 14:46:00 4644
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人