问题列表 - 第15517页

复杂性帮助.O(n ^ 2),0(nlog)等

嘿,有人可以帮我确定复杂性吗?我班上给出的一个例子是

泡泡排序

int main() {
   int a[10] = {10,9,8,7,6,5,4,3,2,1};
   int i,j,temp;

   for (j=0;j<10;j++) {
      for (i=0;i<9;i++) {
         if (a[i] > a[i+1]) {
            temp = a[i];
            a[i] = a[i+1];
            a[i+1] = temp;
         }
      }
   }
   for (i=0;i<10;i++) {
      printf("%d ",a[i]);
   }
}
Run Code Online (Sandbox Code Playgroud)

其复杂度为O(n ^ 2),因为它有两个O(n)循环,因此O(n)x O(n).


并且他们说quicksort的复杂度为O(nlog(n))..为什么会这样?

是因为它围绕一个循环划分一个数字?

-谢谢

c complexity-theory big-o

2
推荐指数
1
解决办法
943
查看次数

0
推荐指数
1
解决办法
3141
查看次数

DataTrigger没有触发

我有以下xaml:

    <DockPanel>
    <DockPanel>
        <CheckBox IsChecked="{Binding Path=Test}" />
        <CheckBox IsChecked="{Binding Path=Test}" />
    </DockPanel>
    <DockPanel DockPanel.Dock="Left" Width="10" Background="Blue">
        <DockPanel.Style>
            <Style>
                <Style.Triggers>
                    <DataTrigger Binding="{Binding Path=Test}" Value="True">
                        <Setter Property="DockPanel.Background" Value="Yellow" />
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </DockPanel.Style>
    </DockPanel>
</DockPanel>
Run Code Online (Sandbox Code Playgroud)

现在 - 2个复选框正确链接 - 检查一个将检查另一个 - 但数据触发器根本没有触发.

我究竟做错了什么?

.net wpf xaml datatrigger

9
推荐指数
1
解决办法
5899
查看次数

在Python中弹出图形对话框的最简单的跨平台方法是什么?

我想用最简单的方法在Python脚本中弹出简单的对话框.理想情况下,解决方案将:

  • 适用于Windows,OS X,Gnome,KDE
  • 看起来像任何操作系统上的本机对话框
  • 需要最少的代码

要弹出一个简单的标准对话框,只需要很少的代码.基本上你只是说"用这个文本弹出标准对话框",或者"弹出一个带有问题x的对话框并将响应反馈到变量y".

这适用于在命令行上运行的简单脚本.我不想知道GUI框架或者必须设置代码"启动GUI线程,注册事件处理程序,配置一些窗口属性,运行循环"等等.我不想设置窗户或之后关闭窗户.我把文本放在窗口和/或按钮和/或复选框中,它返回用户点击的内容.其他一切都应该自动处理.例如:

message_box('File conversion complete')
Run Code Online (Sandbox Code Playgroud)

对于带有"确定"按钮的标准对话框,或

balloon_tip('File conversion complete')
Run Code Online (Sandbox Code Playgroud)

对于系统托盘弹出气球,或

format = button_box('Which file format do you want?', 'JPG', 'PNG')
Run Code Online (Sandbox Code Playgroud)

然后他们按下两个按钮中的一个,然后format等于'JPG',或

response = text_query('What would you like to name the file?')
Run Code Online (Sandbox Code Playgroud)

然后在他们输入框并输入Ok后,response现在等于'bananas.txt'.无需其他代码.没有丑陋的命令行提示穷人.

我列出了Zenity和EasyGUI作为示例答案,因为它们与我想要的相似,但并不完美.

[ 以前在Python论坛上问过 ]

python dialog cross-platform zenity

38
推荐指数
8
解决办法
3万
查看次数

可以在c ++中将类声明为static吗?

这在c ++中是否合法(是的,我知道它在.net中是合法的),如果是,那么它将如何/为什么会被使用?

static class foo{  
    public:  
        foo();  
        int doIt(int a);   
};
Run Code Online (Sandbox Code Playgroud)

c++ static

10
推荐指数
4
解决办法
2万
查看次数

终止多线程python程序

如何对Ctrl + C键事件进行多线程python程序响应?

编辑:代码是这样的:

import threading
current = 0

class MyThread(threading.Thread):
    def __init__(self, total):
        threading.Thread.__init__(self)
        self.total = total

    def stop(self):
        self._Thread__stop()

    def run(self):
        global current
        while current<self.total:
            lock = threading.Lock()
            lock.acquire()
            current+=1
            lock.release()
            print current

if __name__=='__main__':

    threads = []
    thread_count = 10
    total = 10000
    for i in range(0, thread_count):
        t = MyThread(total)
        t.setDaemon(True)
        threads.append(t)
    for i in range(0, thread_count):
        threads[i].start()
Run Code Online (Sandbox Code Playgroud)

我试图在所有线程上删除join()但它仍然无效.是因为每个线程的run()过程中的锁段?

编辑:上面的代码应该可以工作但是当当前变量在5,000-6,000范围内并且通过如下错误时它总是被中断

Exception in thread Thread-4 (most likely raised during interpreter shutdown):
Traceback (most recent call …
Run Code Online (Sandbox Code Playgroud)

python multithreading

71
推荐指数
4
解决办法
8万
查看次数

2
推荐指数
1
解决办法
5875
查看次数

Scala:尽管在添加时使用了Long,但仍会溢出

在2.7.5.final,我试图添加一个Intrable Int这样的列表

def sum(xs: Iterable[Int]): Long = {
  var sum = 0L
  xs.foreach((x) => sum = sum + x)
  sum
}

println(sum(List(1, Integer.MAX_VALUE - 1)))
println(sum(Integer.MAX_VALUE - 1 to Integer.MAX_VALUE))
println(0L + Integer.MAX_VALUE - 1 + Integer.MAX_VALUE)
Run Code Online (Sandbox Code Playgroud)

当我跑步时,我明白了

2147483647
0
4294967293
Run Code Online (Sandbox Code Playgroud)

并且,您可能会说"使用reduceLeft(_ + _)",但它似乎只能返回与列表中的元素相同的类型...但我想积累到Long,所以我没有溢出问题.

更新2009-10-28

正如Eastsun所指出的,这是Range中的一个错误.已经向Scala团队报告了2535号机票

scala

5
推荐指数
2
解决办法
1135
查看次数

目标C中的奇怪数学

我在Objective C中通过简单的数学计算得到了一个意想不到的值.我输出了计算的三个不同部分以及下面的计算结果.

以下代码

    NSLog(@"self.contentView.bounds.size.width: %f", self.contentView.bounds.size.width);
    NSLog(@"SWATCHES_WIDTH: %f", SWATCHES_WIDTH);
    NSLog(@"RIGHT_MARGIN: %f", RIGHT_MARGIN);
    NSLog(@"(self.contentView.bounds.size.width - SWATCHES_WIDTH - RIGHT_MARGIN): %f", (self.contentView.bounds.size.width - SWATCHES_WIDTH - RIGHT_MARGIN));
Run Code Online (Sandbox Code Playgroud)

给出以下输出:

self.contentView.bounds.size.width:288.000000
SWATCHES_WIDTH:82.000000
RIGHT_MARGIN:12.000000
(self.contentView.bounds.size.width - SWATCHES_WIDTH - RIGHT_MARGIN):214.000000

我希望结果将是194而不是214(288-82-12 = 194).任何人都可以提供任何见解,为什么这是按照它的方式计算,我可以做些什么来解决它?谢谢!

据我所知,这三个值都是CGFloats.这两个常量定义如下:

#define SWATCHES_WIDTH      SWATCH_SIZE * 3.0 + SPACE_BETWEEN * 2.0
#define RIGHT_MARGIN        12.0
Run Code Online (Sandbox Code Playgroud)

objective-c

2
推荐指数
1
解决办法
293
查看次数

在运行时添加Java注释

是否可以在运行时向对象添加注释(在我的情况下特别是一个方法)?

更多解释:我有两个模块,moduleA和moduleB.moduleB依赖于moduleA,它不依赖于任何东西.(modA是我的核心数据类型和接口等,modB是db/data层)modB也取决于externalLibrary.在我的例子中,modB将一个类从modA移交给externalLibrary,这需要某些方法进行注释.具体的注释都是externalLib的一部分,正如我所说,modA不依赖于externalLib,我想保持这种方式.

那么,这是可能的,还是你有其他方法来看待这个问题的建议?

java annotations runtime

68
推荐指数
4
解决办法
5万
查看次数