全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
6414 4
2013-10-21
> p<-c(3,5,6,7,9,8)
> position<-function(p,left,right)
+ {
+  left=1
+  right=6
+  ch=p[1]
+  while(left<right)
+  {
+             while(p[right]>=ch)
+       {right=right-1}
+ if(left<right)
+ {
+                   temp=p[right]
+ p[right]=p[left]
+ p[left]=temp
+  
+ }
+ while(p[left]<=ch)
+              {left=left+1}
+             if(left<right)
+             {
+ temp=p[left]
+ p[left]=p[right]
+ p[right]=temp
+             }
+  }
+   p[left]=ch
+  return (left)
+ }
> position(p,1,6)
Error in while (p[right] >= ch) { : argument is of length zero
>
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2013-10-21 20:44:56
还是在排序吗?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-10-21 20:49:46
是的。呜呜,自学的R,老师让我实现快速排序的算法。必须自己实现,不要套用别人的代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-10-22 00:20:11
把p<-c(3,5,6,7,9,8)放到function里面去。

当你把p<-c(3,5,6,7,9,8)放在function外面时,p<-c(3,5,6,7,9,8)的这个p所在的环境是GlobalEnv。

而function(p,left,right)里面的这个p的环境是function本身。换句话说,你只定义了GlobalEnv里的p,但是还没有定义function里的p,你程序里的两个p是不同的两个p。

所以R报错告诉你,“argument 的长度是0”。也就是说,function(p, left, right)找不到你想要的那个function环境里的p。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-10-22 21:25:07
zhgzhckc 发表于 2013-10-22 00:20
把p
好像还不行,亦然会报错。非常感谢你。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群