package com.sort;
public class ArraySel {
private Long[] a;
private int nElems;
public ArraySel(int max)
{
a = new Long[max];
nElems = 0;
}
public void insert(long max)
{
a[nElems] = max;
nElems++;
}
public void display()
{
for(int j = 0; j < nElems; j++)
{
System.out.print(a[j]+ " ");
}
System.out.println();
}
public void insertionSort()
{
int in , out, flag = 0;
long temp;
for(out = 1; out < nElems; out++)
{
temp = a[out];
in = out;
while(in > 0 && a[in - 1] >= temp )
{
if(a[in] == a[in - 1 ])
{
flag++;
in--;
}
else
{
a[in] = a[in-1];
in--;
}
}
a[in] = temp;
}
}
}
このコードは、並べ替えられていない配列を受け取り、挿入並べ替えを使用して並べ替えます。重複が並べ替えられていない配列で一緒に配置されると、複数のシフトの複雑さが原因で、重複が一緒に配置された場合に複数回移動するアイテムがないことを確認して作成O(N^2)
しようとしました。O(N)
しかし、重複が一緒に配置されていない場合、複雑さが残りO(N^2)
ます。O(N)
この場合も複雑にできますか?