Redian新闻
>
[合集] 宝宝会爬以后,家里脏脏的地毯怎么办?
avatar
[合集] 宝宝会爬以后,家里脏脏的地毯怎么办?# NextGeneration - 我爱宝宝
c*i
1
http://www.geeksforgeeks.org/counting-inversions/
给出了代码,可是看了程序后, 有点不解,想请大牛指教一下:
/*this is tricky -- see above explanation/diagram for merge()*/
inv_count = inv_count + (mid - i);
不应该是:
inv_count = inv_count + (mid - i)+1?
当copy a[j]时,left array 剩下的都是inversion,不应该是(mid - i)+ 1 个吗?
int merge(int arr[], int temp[], int left, int mid, int right)
{
int i, j, k;
int inv_count = 0;
i = left; /* i is index for left subarray*/
j = mid; /* i is index for right subarray*/
k = left; /* i is index for resultant merged subarray*/
while ((i <= mid - 1) && (j <= right))
{
if (arr[i] <= arr[j])
{
temp[k++] = arr[i++];
}
else
{
temp[k++] = arr[j++];
/*this is tricky -- see above explanation/diagram for merge()*/
inv_count = inv_count + (mid - i);
}
}
/* Copy the remaining elements of left subarray
(if there are any) to temp*/
while (i <= mid - 1)
temp[k++] = arr[i++];
/* Copy the remaining elements of right subarray
(if there are any) to temp*/
while (j <= right)
temp[k++] = arr[j++];
/*Copy back the merged elements to original array*/
for (i=left; i <= right; i++)
arr[i] = temp[i];
return inv_count;
}
avatar
B*e
2
☆─────────────────────────────────────☆
jfjf (睡整觉吧) 于 (Sat Sep 26 02:20:15 2009, 美东) 提到:
一定要铺别的东西么?好像听好多人说过软的泡沫那种方块。
因为家里东西多,又小,去租专门的设备来清洗地毯好像不划算。
不知道请人来家里清洗要多少钱,干净否,是不是用大量洗涤剂?那个反倒对宝宝
不好吧。
SIGH,会爬以后怎么办啊? 怕怕
☆─────────────────────────────────────☆
pl6666 (pl6666) 于 (Sat Sep 26 02:42:58 2009, 美东) 提到:
铺那种play mate 吧,好像是这么拼的,然后可以买小栅栏蓝起来限定宝宝爬的范围
☆─────────────────────────────────────☆
reallove (大牛) 于 (Sat Sep 26 02:57:43 2009, 美东) 提到:
据说有那种可以自己在家做深层清洁的喷剂
☆──────────────────────────────
avatar
b*7
3
int merge(int arr[], int temp[], int left, int mid, int right)
{
int count = 0;
int i = left, j = mid, k= 0;
while(i < mid && j <= right){
if(arr[i] <= arr[j]){
temp[k++] = arr[i++];
count += j - mid;
}else{
temp[k++] = arr[j++];
}
}
while(i < mid){
temp[k++] = arr[i++];
count += j - mid;
}
while(j <= right){
temp[k++] = arr[j++];
}
for(int i = left; i <= right; i++){
arr[i] = temp[i-left];
}
return count;
}
avatar
r*d
4
是mid-i还是mid-i+1取决于你把mid放到左边还是右边。左边就加一,右边就不加。

【在 c*********i 的大作中提到】
: http://www.geeksforgeeks.org/counting-inversions/
: 给出了代码,可是看了程序后, 有点不解,想请大牛指教一下:
: /*this is tricky -- see above explanation/diagram for merge()*/
: inv_count = inv_count + (mid - i);
: 不应该是:
: inv_count = inv_count + (mid - i)+1?
: 当copy a[j]时,left array 剩下的都是inversion,不应该是(mid - i)+ 1 个吗?
: int merge(int arr[], int temp[], int left, int mid, int right)
: {
: int i, j, k;

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。