我想在php中快速输入一些对象.
我正在排序一系列OBJECTS
$object->x;
$object->y;
$object->z;
Run Code Online (Sandbox Code Playgroud)
我想首先按x排序,然后是y,然后是z.
这是我的快速排序函数,它接受一个jobjects数组,并按特定的sortkey(x,y或z列)排序.该函数返回一个排序的对象数组,这些对象已经按sortkey排序.
private function quicksort($objects, $sortKey) {
if(count($objects) < 2) return $objects;
$left = $right = array();
reset($objects);
$pivot_key = key($objects);
$pivot = array_shift($objects);
foreach($objects as $k => $v) {
if($v->$sortKey < $pivot->$sortKey)
$left[$k] = $v;
else
$right[$k] = $v;
}
return array_merge($this->quicksort($left,$sortKey), array($pivot_key => $pivot), $this->quicksort($right,$sortKey));
}
Run Code Online (Sandbox Code Playgroud)
我可以使用快速排序递归算法轻松地快速排序任何单个列,但是将它们组合在一起然后将这些子组排序到第n次真是搞糟了.
有没有我可以看到的算法?
我遇到了InnoDB的问题(表是最初的MyISAM,但是之前将它转换为InndoB)表; 我正在尝试运行此查询:
SELECT
posts.id,
posts.post_title
FROM
rss_posts AS posts
INNER JOIN rss_feeds AS feeds ON posts.blog_id=feeds.id
WHERE
feeds.blog_language=1
ORDER BY
posts.post_date_db DESC
LIMIT
10;
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
Query : SELECT posts.id,posts.post_title FROM rss_posts AS posts INNER JOIN vw_rss_feeds AS feeds ON posts.blog_id=feeds.id WHER...
Error Code : 126
Incorrect key file for table '/tmp/#sql_7375_0.MYI'; try to repair it
Run Code Online (Sandbox Code Playgroud)
我不能对所涉及的桌子进行维修; 但是我在两张桌子上都运行了CHECK并且看起来很好.我还在两个表上都做了一个OPTIMIZE,并通过以下方式重建了表.
INSERT INTO new_table SELECT * FROM old_table;
Run Code Online (Sandbox Code Playgroud)
然后我将新表重命名为旧表名.....但我仍然遇到这个问题.
为了尝试找出导致它的表,我删除了引用"rss_feeds"表的查询中的代码....所以现在查询看起来像这样.
SELECT
posts.id,
posts.post_title
FROM
rss_posts AS posts
ORDER BY
posts.post_date_db DESC
LIMIT
10;
Run Code Online (Sandbox Code Playgroud)
那很有效. …
我有这样的功能:
function ban_rot(){
var bnr = new Array();
bnr[0] = "/Graphics/adv/businesscrown.gif";
bnr[1] = "/Graphics/adv/webbdesigna.jpg";
num = bnr.length - 1;
i = Math.round(Math.random(bnr) * num);
return '<img src=\"' + i + '\" alt=\"\" border=\"1px\" style=\"border-color:#000;\">';
}
Run Code Online (Sandbox Code Playgroud)
然后我有一个HTML代码:
<td align="center"><a href="http://www.domain.com" class="links4">
<script type="text/javascript">return ban_rot();</script>
</a>
</td>
Run Code Online (Sandbox Code Playgroud)
以上不起作用,即没有任何显示.空.
有任何想法吗?
谢谢
我有一个webapp,需要超出普通Web应用程序的安全性.当任何用户访问域名时,会显示两个文本字段,用户名字段和密码字段.如果他们输入有效的用户/通行证,他们就可以访问Web应用程序.标准的东西.
但是,我正在寻找超出此标准设置的额外安全性.理想情况下,它将是一个软件解决方案,但我也开放硬件解决方案(硬件=密钥卡),甚至程序更改(例如,一次在密码板上使用密码).
webapp的独特之处在于我们提前了解所有用户,并且我们创建了用户名和密码并将其提供给他们.从这个意义上讲,我们可以放心,用户名和密码是"强大的".
但是,我们的客户要求额外的安全性.任何人对如何为安全性添加另一层复杂性有任何想法?
我在Mathematica需要一些帮助.我正在尝试绘制存储在列表中的函数,例如:
list = {{3x,1,5},{2x ^ 2,0,4}}
如果我输入,我需要输出类似的输出:
显示[剧情[3倍,{X,1,5}],剧情[2倍^ 2,{X,0,4}]]
但我不太确定这是如何实现的?
提前致谢
我很难让我的DB2(AS/400)查询不区分大小写.
例如:
SELECT *
FROM NameTable
WHERE LastName = 'smith'
Run Code Online (Sandbox Code Playgroud)
将不返回任何结果,但以下返回1000的结果:
SELECT *
FROM NameTable
WHERE LastName = 'Smith'
Run Code Online (Sandbox Code Playgroud)
我已经读过将SortSequence/SortType放入你的连接字符串但是没有运气......有人对此有所了解吗?
编辑:
这是存储过程:
BEGIN
DECLARE CR CURSOR FOR
SELECT T . ID ,
T . LASTNAME ,
T . FIRSTNAME ,
T . MIDDLENAME ,
T . STREETNAME || ' ' || T . ADDRESS2 || ' ' || T . CITY || ' ' || T . STATE || ' ' || T . ZIPCODE AS ADDRESS ,
T . …Run Code Online (Sandbox Code Playgroud) 我有一个老鼠听众.它有一些代码来响应mouseUp和mouseDown事件.这工作正常.
但是,只要我添加一个DragSource,我的mouseDown事件就不再发送 - 直到我释放鼠标按钮!
重现这一点很简单 - 下面是一个简单的程序,它包含一个只有鼠标监听器和拖动监听器的普通shell.当我运行它(在Mac上),然后按住鼠标按钮时,没有任何反应 - 但是一旦我释放鼠标按钮,我立即看到鼠标按下和鼠标按下事件.如果我注释掉拖动源,那么鼠标事件将以它们应该的方式传递.
我搜索过其他有类似问题的人,而我最接近解释的是:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=26605#c16 "如果您挂钩拖动检测,操作系统需要吃掉鼠标事件,直到它确定您是否已拖动."
但是,我不明白为什么这是真的 - 为什么操作系统必须吃掉鼠标事件以确定我是否有阻力?在我按下按钮的鼠标移动事件之前,拖动才会开始.
更重要的是:有人可以建议解决方法吗?(当我按下鼠标时,我尝试动态添加和删除我的拖动源,但是我无法通过拖放操作正常,因为它从未看到初始按键 - 我找不到以编程方式启动的方法拖动.)
这是示例程序:
package swttest;
import org.eclipse.swt.dnd.DND;
import org.eclipse.swt.dnd.DragSource;
import org.eclipse.swt.dnd.DragSourceEvent;
import org.eclipse.swt.dnd.DragSourceListener;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.MouseListener;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class SwtTest {
public static void main(String[] args) {
final Display display = new Display();
final Shell shell = new Shell(display);
shell.addMouseListener(new MouseListener() {
public void mouseUp(MouseEvent e) {
System.out.println("mouseUp");
}
public void mouseDown(MouseEvent e) {
System.out.println("mouseDown");
}
public void mouseDoubleClick(MouseEvent e) …Run Code Online (Sandbox Code Playgroud) 我使用Eclipse开发了我的第一个(小)Andoid应用程序,现在可以将它传输到我的Galaxy S移动设备(开发Android 2.1)
在SE中的另一个线程之后,我将Eclipse中的运行模式更改为手动,希望每次运行程序时都可以选择我的手机和/或AVD.
弹出列表howerver仅显示AVD,我的手机不在列表中.
显然,我的三星Galaxy S设备无法识别.然后,我可以使用驱动器号与设备进行传输,以便USB连接正常工作.
任何人都知道我在这里缺少什么?我不确定它是Eclipse问题,还是驱动程序或....
我可以从匿名类中定义数组或列表吗?
像这样:
persons = new ... []
{
new { ID = 1, Name = "Name1"},
new { ID = 2, Name = "Name2"}
}
Run Code Online (Sandbox Code Playgroud) 我需要一种方法从外部代码块"注入"函数到函数中,因此它们可以在本地访问,并且它们不需要由函数的代码(定义为函数参数,从*args等等加载)专门处理.
简化的场景:提供一框架,使用户能够定义(用尽可能少的语法越好)自定义函数来操纵框架的其他对象(其是不必需global).
理想情况下,用户定义
def user_func():
Mouse.eat(Cheese)
if Cat.find(Mouse):
Cat.happy += 1
Run Code Online (Sandbox Code Playgroud)
在这里Cat,Mouse并且Cheese是框架对象,出于好的理由,它们不能限制在全局命名空间中.
我想为这个函数编写一个包装器,表现如下:
def framework_wrap(user_func):
# this is a framework internal and has name bindings to Cat, Mouse and Cheese
def f():
inject(user_func, {'Cat': Cat, 'Mouse': Mouse, 'Cheese': Cheese})
user_func()
return f
Run Code Online (Sandbox Code Playgroud)
然后,这个包装器可以应用于所有用户定义的函数(作为装饰器,由用户自己或自动,虽然我打算使用元类).
@framework_wrap
def user_func():
Run Code Online (Sandbox Code Playgroud)
我知道Python 3的nonlocal关键字,但我仍然认为丑陋(从框架的用户角度来看)添加额外的一行:
nonlocal Cat, Mouse, Cheese
Run Code Online (Sandbox Code Playgroud)
并担心将他需要的每个对象添加到此行.
任何建议都非常感谢.