10 2012 档案
摘要:void Swap(int *i, int *j){ int temp = *i; *i = *j; *j = temp;}void MinHeapFixup(int a[], int i) { for (int j = (i - 1) / 2; (j >= 0 && i != 0)&& a[i] > a[j]; i = j, j = (i - 1) / 2) Swap(&a[i], &a[j]); }//在最小堆中加入新的数据nNum void MinHeapAddNumber(int a[], int n, int nNum) {
阅读全文
摘要:快速排序输采用分而治之的策略,将一个串分为两个串,分别进行排序具体实现方法:在数组中找到基准pivot分区partition操作:将所有小于pivot的元素放在pivot的前面,将所有大于pivot的元素放在pivot的后面递归recursive操作:将两个子数组进行上面类似的排序效率分析:时间复杂度:最佳好情况O(nlogn),数组中的每个元素都需要被循环遍历一次,以找到其位置,需要O(n),而每次遍历时都将数组给分区成2个部分,需要O(logn);最坏情况O(n^2)空间复杂度:最好情况O(logn),最坏情况O(n)实现代码: void partition(int *arr,int l.
阅读全文

浙公网安备 33010602011771号