摘要: 关于冒泡最优情况说明一下,O(n)是指在使用标志情况下,否则仍是O(n)。冒泡排序://本人习惯先把最大的选出来,放到右边void maopao(int arr[],int n){ int i,j,tmp;//tmp提前写上,或者及时补上! for (i=n-1;i>=0;i--)//不能少写等号! for(j=0;jarr[j+1])//不比较等于情况!否则就不稳定了! { tmp=arr[j+1]; arr[j+1]=arr[j]; arr[j]=tmp; } } return;}使用标志的冒泡排序,最好可达到O(n):void bubble_sort(int d[], i... 阅读全文
posted @ 2012-09-29 22:23 aitao 阅读(704) 评论(0) 推荐(0) 编辑
摘要: 1.Hash介绍 Hash这个在实现某些功能的经常会用到的数据结构,在java和c++ 里面都有相应的封装好的数据结构:C++ STL Map java 有HashMap TreeMap。计算理论中,没有Hash函数的说法,只有单向函数的说法。所谓的单向函数,是一个复杂的定义,大家可以去看计算理论或者密码学方面的数据。用“人 类”的语言描述单向函数就是:如果某个函数在给定输入的时候,很容易计算出其结果来;而当给定结果的时候,很难计算出输入来,这就是单项函数。各种加密函 数都可以被认为是单向函数的逼近。Hash函数(或者成为散列函数)也可以看成是单向函数的一个逼近。即它接近于满足单向函数的定义。 阅读全文
posted @ 2012-09-29 09:48 aitao 阅读(4611) 评论(1) 推荐(0) 编辑