public class org.hsqldb.lib.ArraySort
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.hsqldb.lib.ArraySort
super_class: java.lang.Object
{
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // org.hsqldb.lib.ArraySort this
0: .line 47
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // org.hsqldb.lib.ArraySort this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/hsqldb/lib/ArraySort;
public static int searchFirst(java.lang.Object[], int, int, java.lang.Object, java.util.Comparator);
descriptor: ([Ljava/lang/Object;IILjava/lang/Object;Ljava/util/Comparator;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=10, args_size=5
start local 0 // java.lang.Object[] array
start local 1 // int start
start local 2 // int limit
start local 3 // java.lang.Object value
start local 4 // java.util.Comparator c
0: .line 57
iload 1 /* start */
istore 5 /* low */
start local 5 // int low
1: .line 58
iload 2 /* limit */
istore 6 /* high */
start local 6 // int high
2: .line 59
iload 2 /* limit */
istore 7 /* found */
start local 7 // int found
3: .line 63
goto 14
4: .line 64
StackMap locals: int int int
StackMap stack:
iload 5 /* low */
iload 6 /* high */
iadd
iconst_1
iushr
istore 8 /* mid */
start local 8 // int mid
5: .line 65
aload 4 /* c */
aload 3 /* value */
aload 0 /* array */
iload 8 /* mid */
aaload
invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
istore 9 /* compare */
start local 9 // int compare
6: .line 67
iload 9 /* compare */
ifge 9
7: .line 68
iload 8 /* mid */
istore 6 /* high */
8: .line 69
goto 14
StackMap locals: int int
StackMap stack:
9: iload 9 /* compare */
ifle 12
10: .line 70
iload 8 /* mid */
iconst_1
iadd
istore 5 /* low */
11: .line 71
goto 14
12: .line 72
StackMap locals:
StackMap stack:
iload 8 /* mid */
istore 6 /* high */
13: .line 73
iload 8 /* mid */
istore 7 /* found */
end local 9 // int compare
end local 8 // int mid
14: .line 63
StackMap locals:
StackMap stack:
iload 5 /* low */
iload 6 /* high */
if_icmplt 4
15: .line 77
iload 7 /* found */
iload 2 /* limit */
if_icmpne 16
iload 5 /* low */
ineg
iconst_1
isub
goto 17
16: .line 78
StackMap locals:
StackMap stack:
iload 7 /* found */
17: .line 77
StackMap locals:
StackMap stack: int
ireturn
end local 7 // int found
end local 6 // int high
end local 5 // int low
end local 4 // java.util.Comparator c
end local 3 // java.lang.Object value
end local 2 // int limit
end local 1 // int start
end local 0 // java.lang.Object[] array
LocalVariableTable:
Start End Slot Name Signature
0 18 0 array [Ljava/lang/Object;
0 18 1 start I
0 18 2 limit I
0 18 3 value Ljava/lang/Object;
0 18 4 c Ljava/util/Comparator;
1 18 5 low I
2 18 6 high I
3 18 7 found I
5 14 8 mid I
6 14 9 compare I
MethodParameters:
Name Flags
array
start
limit
value
c
public static int deDuplicate(java.lang.Object[], int, java.util.Comparator);
descriptor: ([Ljava/lang/Object;ILjava/util/Comparator;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=6, args_size=3
start local 0 // java.lang.Object[] array
start local 1 // int limit
start local 2 // java.util.Comparator comparator
0: .line 84
iconst_0
istore 3 /* baseIndex */
start local 3 // int baseIndex
1: .line 85
iconst_1
istore 4 /* currentIndex */
start local 4 // int currentIndex
2: .line 87
iload 1 /* limit */
iconst_2
if_icmpge 12
3: .line 88
iload 1 /* limit */
ireturn
4: .line 92
StackMap locals: int int
StackMap stack:
aload 2 /* comparator */
aload 0 /* array */
iload 3 /* baseIndex */
aaload
5: .line 93
aload 0 /* array */
iload 4 /* currentIndex */
aaload
6: .line 92
invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
istore 5 /* compare */
start local 5 // int compare
7: .line 95
iload 5 /* compare */
ifne 9
8: .line 96
goto 11
9: .line 99
StackMap locals: int
StackMap stack:
iinc 3 /* baseIndex */ 1
10: .line 101
aload 0 /* array */
iload 3 /* baseIndex */
aload 0 /* array */
iload 4 /* currentIndex */
aaload
aastore
end local 5 // int compare
11: .line 91
StackMap locals:
StackMap stack:
iinc 4 /* currentIndex */ 1
StackMap locals:
StackMap stack:
12: iload 4 /* currentIndex */
iload 1 /* limit */
if_icmplt 4
13: .line 104
iload 3 /* baseIndex */
iconst_1
iadd
ireturn
end local 4 // int currentIndex
end local 3 // int baseIndex
end local 2 // java.util.Comparator comparator
end local 1 // int limit
end local 0 // java.lang.Object[] array
LocalVariableTable:
Start End Slot Name Signature
0 14 0 array [Ljava/lang/Object;
0 14 1 limit I
0 14 2 comparator Ljava/util/Comparator;
1 14 3 baseIndex I
2 14 4 currentIndex I
7 11 5 compare I
MethodParameters:
Name Flags
array
limit
comparator
public static void sort(java.lang.Object[], int, java.util.Comparator);
descriptor: ([Ljava/lang/Object;ILjava/util/Comparator;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 // java.lang.Object[] array
start local 1 // int limit
start local 2 // java.util.Comparator comparator
0: .line 110
iload 1 /* limit */
iconst_2
if_icmpge 2
1: .line 111
return
2: .line 114
StackMap locals:
StackMap stack:
aload 0 /* array */
aload 2 /* comparator */
iconst_0
iload 1 /* limit */
iconst_1
isub
invokestatic org.hsqldb.lib.ArraySort.quickSort:([Ljava/lang/Object;Ljava/util/Comparator;II)V
3: .line 115
aload 0 /* array */
aload 2 /* comparator */
iconst_0
iload 1 /* limit */
iconst_1
isub
invokestatic org.hsqldb.lib.ArraySort.insertionSort:([Ljava/lang/Object;Ljava/util/Comparator;II)V
4: .line 116
return
end local 2 // java.util.Comparator comparator
end local 1 // int limit
end local 0 // java.lang.Object[] array
LocalVariableTable:
Start End Slot Name Signature
0 5 0 array [Ljava/lang/Object;
0 5 1 limit I
0 5 2 comparator Ljava/util/Comparator;
MethodParameters:
Name Flags
array
limit
comparator
static void quickSort(java.lang.Object[], java.util.Comparator, int, int);
descriptor: ([Ljava/lang/Object;Ljava/util/Comparator;II)V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=8, args_size=4
start local 0 // java.lang.Object[] array
start local 1 // java.util.Comparator comparator
start local 2 // int l
start local 3 // int r
0: .line 121
bipush 16
istore 4 /* M */
start local 4 // int M
1: .line 126
iload 3 /* r */
iload 2 /* l */
isub
iload 4 /* M */
if_icmple 22
2: .line 127
iload 3 /* r */
iload 2 /* l */
iadd
iconst_1
iushr
istore 5 /* i */
start local 5 // int i
3: .line 129
aload 1 /* comparator */
aload 0 /* array */
iload 5 /* i */
aaload
aload 0 /* array */
iload 2 /* l */
aaload
invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
ifge 5
4: .line 130
aload 0 /* array */
iload 2 /* l */
iload 5 /* i */
invokestatic org.hsqldb.lib.ArraySort.swap:([Ljava/lang/Object;II)V
5: .line 133
StackMap locals: int int
StackMap stack:
aload 1 /* comparator */
aload 0 /* array */
iload 3 /* r */
aaload
aload 0 /* array */
iload 2 /* l */
aaload
invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
ifge 7
6: .line 134
aload 0 /* array */
iload 2 /* l */
iload 3 /* r */
invokestatic org.hsqldb.lib.ArraySort.swap:([Ljava/lang/Object;II)V
7: .line 137
StackMap locals:
StackMap stack:
aload 1 /* comparator */
aload 0 /* array */
iload 3 /* r */
aaload
aload 0 /* array */
iload 5 /* i */
aaload
invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
ifge 9
8: .line 138
aload 0 /* array */
iload 5 /* i */
iload 3 /* r */
invokestatic org.hsqldb.lib.ArraySort.swap:([Ljava/lang/Object;II)V
9: .line 141
StackMap locals:
StackMap stack:
iload 3 /* r */
iconst_1
isub
istore 6 /* j */
start local 6 // int j
10: .line 143
aload 0 /* array */
iload 5 /* i */
iload 6 /* j */
invokestatic org.hsqldb.lib.ArraySort.swap:([Ljava/lang/Object;II)V
11: .line 145
iload 2 /* l */
istore 5 /* i */
12: .line 146
iload 6 /* j */
istore 7 /* v */
start local 7 // int v
13: .line 149
StackMap locals: int int
StackMap stack:
aload 1 /* comparator */
aload 0 /* array */
iinc 5 /* i */ 1
iload 5 /* i */
aaload
aload 0 /* array */
iload 7 /* v */
aaload
invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
iflt 13
14: .line 151
StackMap locals:
StackMap stack:
aload 1 /* comparator */
aload 0 /* array */
iload 7 /* v */
aaload
aload 0 /* array */
iinc 6 /* j */ -1
iload 6 /* j */
aaload
invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
iflt 14
15: .line 153
iload 6 /* j */
iload 5 /* i */
if_icmpge 17
16: .line 154
goto 19
17: .line 157
StackMap locals:
StackMap stack:
aload 0 /* array */
iload 5 /* i */
iload 6 /* j */
invokestatic org.hsqldb.lib.ArraySort.swap:([Ljava/lang/Object;II)V
18: .line 148
goto 13
19: .line 160
StackMap locals:
StackMap stack:
aload 0 /* array */
iload 5 /* i */
iload 3 /* r */
iconst_1
isub
invokestatic org.hsqldb.lib.ArraySort.swap:([Ljava/lang/Object;II)V
20: .line 161
aload 0 /* array */
aload 1 /* comparator */
iload 2 /* l */
iload 6 /* j */
invokestatic org.hsqldb.lib.ArraySort.quickSort:([Ljava/lang/Object;Ljava/util/Comparator;II)V
21: .line 162
aload 0 /* array */
aload 1 /* comparator */
iload 5 /* i */
iconst_1
iadd
iload 3 /* r */
invokestatic org.hsqldb.lib.ArraySort.quickSort:([Ljava/lang/Object;Ljava/util/Comparator;II)V
end local 7 // int v
end local 6 // int j
end local 5 // int i
22: .line 164
StackMap locals:
StackMap stack:
return
end local 4 // int M
end local 3 // int r
end local 2 // int l
end local 1 // java.util.Comparator comparator
end local 0 // java.lang.Object[] array
LocalVariableTable:
Start End Slot Name Signature
0 23 0 array [Ljava/lang/Object;
0 23 1 comparator Ljava/util/Comparator;
0 23 2 l I
0 23 3 r I
1 23 4 M I
3 22 5 i I
10 22 6 j I
13 22 7 v I
MethodParameters:
Name Flags
array
comparator
l
r
public static void insertionSort(java.lang.Object[], java.util.Comparator, int, int);
descriptor: ([Ljava/lang/Object;Ljava/util/Comparator;II)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=6, args_size=4
start local 0 // java.lang.Object[] array
start local 1 // java.util.Comparator comparator
start local 2 // int lo0
start local 3 // int hi0
0: .line 172
iload 2 /* lo0 */
iconst_1
iadd
istore 4 /* i */
start local 4 // int i
1: goto 11
2: .line 173
StackMap locals: int
StackMap stack:
iload 4 /* i */
istore 5 /* j */
start local 5 // int j
3: .line 175
goto 5
4: .line 177
StackMap locals: int
StackMap stack:
iinc 5 /* j */ -1
5: .line 175
StackMap locals:
StackMap stack:
iload 5 /* j */
iload 2 /* lo0 */
if_icmple 8
6: .line 176
aload 1 /* comparator */
aload 0 /* array */
iload 4 /* i */
aaload
aload 0 /* array */
iload 5 /* j */
iconst_1
isub
aaload
invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
7: .line 175
iflt 4
8: .line 180
StackMap locals:
StackMap stack:
iload 4 /* i */
iload 5 /* j */
if_icmpeq 10
9: .line 181
aload 0 /* array */
iload 4 /* i */
iload 5 /* j */
invokestatic org.hsqldb.lib.ArraySort.moveAndInsertRow:([Ljava/lang/Object;II)V
10: .line 172
StackMap locals:
StackMap stack:
iinc 4 /* i */ 1
end local 5 // int j
StackMap locals:
StackMap stack:
11: iload 4 /* i */
iload 3 /* hi0 */
if_icmple 2
12: .line 184
return
end local 4 // int i
end local 3 // int hi0
end local 2 // int lo0
end local 1 // java.util.Comparator comparator
end local 0 // java.lang.Object[] array
LocalVariableTable:
Start End Slot Name Signature
0 13 0 array [Ljava/lang/Object;
0 13 1 comparator Ljava/util/Comparator;
0 13 2 lo0 I
0 13 3 hi0 I
1 13 4 i I
3 11 5 j I
MethodParameters:
Name Flags
array
comparator
lo0
hi0
private static void swap(java.lang.Object[], int, int);
descriptor: ([Ljava/lang/Object;II)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=3
start local 0 // java.lang.Object[] array
start local 1 // int i1
start local 2 // int i2
0: .line 188
aload 0 /* array */
iload 1 /* i1 */
aaload
astore 3 /* val */
start local 3 // java.lang.Object val
1: .line 190
aload 0 /* array */
iload 1 /* i1 */
aload 0 /* array */
iload 2 /* i2 */
aaload
aastore
2: .line 191
aload 0 /* array */
iload 2 /* i2 */
aload 3 /* val */
aastore
3: .line 192
return
end local 3 // java.lang.Object val
end local 2 // int i2
end local 1 // int i1
end local 0 // java.lang.Object[] array
LocalVariableTable:
Start End Slot Name Signature
0 4 0 array [Ljava/lang/Object;
0 4 1 i1 I
0 4 2 i2 I
1 4 3 val Ljava/lang/Object;
MethodParameters:
Name Flags
array
i1
i2
private static void moveAndInsertRow(java.lang.Object[], int, int);
descriptor: ([Ljava/lang/Object;II)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=4, args_size=3
start local 0 // java.lang.Object[] array
start local 1 // int i
start local 2 // int j
0: .line 196
aload 0 /* array */
iload 1 /* i */
aaload
astore 3 /* val */
start local 3 // java.lang.Object val
1: .line 198
aload 0 /* array */
iload 2 /* j */
iload 2 /* j */
iconst_1
iadd
iload 1 /* i */
iload 2 /* j */
isub
invokestatic org.hsqldb.lib.ArraySort.moveRows:([Ljava/lang/Object;III)V
2: .line 200
aload 0 /* array */
iload 2 /* j */
aload 3 /* val */
aastore
3: .line 201
return
end local 3 // java.lang.Object val
end local 2 // int j
end local 1 // int i
end local 0 // java.lang.Object[] array
LocalVariableTable:
Start End Slot Name Signature
0 4 0 array [Ljava/lang/Object;
0 4 1 i I
0 4 2 j I
1 4 3 val Ljava/lang/Object;
MethodParameters:
Name Flags
array
i
j
private static void moveRows(java.lang.Object[], int, int, int);
descriptor: ([Ljava/lang/Object;III)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=4, args_size=4
start local 0 // java.lang.Object[] array
start local 1 // int fromIndex
start local 2 // int toIndex
start local 3 // int rows
0: .line 205
aload 0 /* array */
iload 1 /* fromIndex */
aload 0 /* array */
iload 2 /* toIndex */
iload 3 /* rows */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
1: .line 206
return
end local 3 // int rows
end local 2 // int toIndex
end local 1 // int fromIndex
end local 0 // java.lang.Object[] array
LocalVariableTable:
Start End Slot Name Signature
0 2 0 array [Ljava/lang/Object;
0 2 1 fromIndex I
0 2 2 toIndex I
0 2 3 rows I
MethodParameters:
Name Flags
array
fromIndex
toIndex
rows
}
SourceFile: "ArraySort.java"