- 博客(5)
- 收藏
- 关注
原创 全排列算法
123132213231321312不断的把数组中的首位分割开,最终实现全排列这里传的是数组,但是操作是在同一个数组操作的,意思就是交换操作是全局的,同时把这个改变过后的结果传个了下一次迭代,但是输出完元素后,程序又进行了一次交换,即自动恢复了对数组的交换,所以我们可以检验最后数组的输出情况,不出意外应该是和原数组一样的结果 。注意:此处没有保证从小到大的全排列,因为按照这种规则...
2018-12-22 14:58:52 196
原创 堆排序与稳定性
边界如此之复杂,思路如此之诡谲。时间复杂度O(nlogn)空间复杂度O(1)堆排序:1.把数组中的元素插入到大根堆,大根堆只保证堆顶元素为最大值,但是整体不保证有序。2.把堆顶元素与最后一个元素交换,同时堆长度heapsize减一3.把交换过后的0到heapsize的元素大根堆化,再重复第二步,直到heapsize的元素为1建立堆的时间复杂度O(n)1.heapsert函数是用来建立...
2018-12-22 14:25:38 13219 4
原创 Matlab数字图像处理一
读取保存I = imread('lenna.jpg');imshow(I);imwrite(I,'new.jpg');灰度图I1 = rgb2gray(I);直方图figure,imhist(I1)直方图均衡化Ie = histeq(I1);图像噪声噪声类型有:guassian,localvar,poisson,salt&pepper,speckleI2=i...
2018-12-14 10:52:05 310
原创 随机快排
import randomdef quicksort(arr, L, R): if(L < R): swap(arr,L + int(random.random()*(R-L+1)), R) low,high=partition(arr, L, R) quicksort(arr, L ,low) quicksort(a...
2018-12-11 11:00:01 92
原创 荷兰国旗问题
荷兰国旗问题给定一个数组arr和一个数num,请把小于num的数放在数组的左边,等于num的数放在数组的中间,大于num的数放在数组的右边要求:额外空间复杂度O(1),时间复杂度O(n)#include&lt;cstdio&gt;int Less = 0;int More = 0;void swap(int arr[],int i,int j){ int tmp = arr[i];...
2018-12-11 10:58:44 123
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人