小编Roä*_*oäc的帖子

快速排序的实施似乎比Mergesort花费更多时间

我试图对QuickSort进行实现(对于小数组,中间值为3分区元素和插入排序),并将其与MergeSort的实现进行比较,但即使QuickSort平均时间应该优于MergeSort,每次我执行它,似乎需要更多的时间来排序一个数组(即使是一个随机顺序).知道为什么会这样吗?

快速排序:

public class Quick {

    private static final int M = 10;
    private static Random random = new Random();

    public void sort(int[] a) {
        sort(a, 0, a.length - 1);
        insertionSort(a, 0, a.length - 1);
    }

    private void sort(int[] a, int lo, int hi) {
        if (hi - lo <= 10) return;
        swap(a, lo, pivot(a, lo, hi));
        int lt = lo, gt = hi;
        int v = a[lo];
        int i = lo;
        while (i <= gt) {
            if      (a[i] < …
Run Code Online (Sandbox Code Playgroud)

java arrays mergesort quicksort

8
推荐指数
1
解决办法
190
查看次数

有没有办法覆盖 powershell 中的“~”(波形符)位置

问题

我试图~在 PowerShell 中更改字符的扩展路径而不更改$Env:USERPROFILE变量。

我尝试过的

我最初的方法是为引用不同环境变量的函数创建一个别名,但它似乎不起作用。

我的代码:

function Get-HomeDirectory { 
  # This is a custom function, it works as I have tested it
  # It should be self-explanatory
  Get-EnvironmentVariable -Key $HOME_DIR_KEY -User
}
Set-Alias -Name ~ -Value Get-HomeDirectory
Run Code Online (Sandbox Code Playgroud)

结果

如果我使用 Get-Help 它会按预期工作:

PS> Get-Help ~                                                                                                                                                                            

NAME
    Get-HomeDirectory

SYNOPSIS
    Returns the home directory of the current user.


SYNTAX
    Get-HomeDirectory [<CommonParameters>]


DESCRIPTION
    Retrieves the value set for the `$Env:USER_HOME_DIR` environment variable.


RELATED LINKS
    Set-HomeDirectory

REMARKS
    To see the …
Run Code Online (Sandbox Code Playgroud)

powershell environment-variables

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

FormClose继承

我对Delphi很新(我使用的是版本10.1柏林),我试图理解继承是如何工作的.

假设我有2个表单,在关闭时必须执行相同的操作.为了避免代码重复,我最初的想法是创建一个TFoobarForm继承自的超类,TForm然后创建一个FormClose这样的过程:

procedure TFoobarForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  { Some code }
end;
Run Code Online (Sandbox Code Playgroud)

在那之后,我想创建两个表单,让我们说,TFooFormTBarForm继承自TFoobarForm.但我不知道是否有办法使这些新表单执行超类FormClose操作,而无需从继承自它的每个类手动调用该过程.

最后,我正在寻找的是一种避免写这个的方法:

procedure TFooForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  inherited FormClose(Sender, Action);
end;
Run Code Online (Sandbox Code Playgroud)

对于每个子类TFoobarForm.

delphi inheritance delphi-10.1-berlin

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