我试图对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) 我试图~在 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) 我对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)
在那之后,我想创建两个表单,让我们说,TFooForm并TBarForm继承自TFoobarForm.但我不知道是否有办法使这些新表单执行超类FormClose操作,而无需从继承自它的每个类手动调用该过程.
最后,我正在寻找的是一种避免写这个的方法:
procedure TFooForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited FormClose(Sender, Action);
end;
Run Code Online (Sandbox Code Playgroud)
对于每个子类TFoobarForm.