2013年10月3日
摘要: 性质1: 如果存在主元素的话,主元素一定是中位数。方法1:使用快排O(nlogn)进行排序,找到中位数,然后判断首元素是否和中位数相等、以及尾元素是否和中位数相等。 如果有一个以上的相等,则存在主元素(中位数)。方法2:使用O(n)的选择算法找到中位数,然后再判断中位数是不是主元素。方法3:性质2:如果一个数组中有主元素,则同时删除两个不相等的值,这个主元素不会改变。因此下面的代码就是不断的删除两个不等的值。然后测试剩下的最后一个元素是不是主元素。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7... 阅读全文
posted @ 2013-10-03 19:14 leiatpku 阅读(1195) 评论(0) 推荐(0) 编辑
摘要: 算法书的作业题:2.5 设A是n个不同的数排好序的数组,给定L和U, L 10 #include 11 #include 12 #include 13 #include 14 #include 15 using namespace std; 16 17 #define MAX 100 18 int result[MAX], len = 0; 19 20 int lower = -1, higher = -1; 21 22 void lower_index(int *a, int start, int end, int l, int u) 23 { 24 //find t... 阅读全文
posted @ 2013-10-03 16:15 leiatpku 阅读(1285) 评论(4) 推荐(0) 编辑