2 *******************************************************************************
\r
3 * Copyright (C) 1998-2004, International Business Machines Corporation and *
\r
4 * others. All Rights Reserved. *
\r
5 *******************************************************************************
\r
7 * Created on Dec 3, 2003
\r
9 *******************************************************************************
\r
11 package com.ibm.icu.dev.tool.layout;
\r
14 import com.ibm.icu.impl.Utility;
\r
16 public class TaggedRecord
\r
20 public TaggedRecord(String theTag)
\r
25 public String getTag()
\r
31 // Straight insertion sort from Knuth vol. III, pg. 81
\r
33 public static void sort(TaggedRecord[] table, int count)
\r
35 for (int j = 1; j < count; j += 1) {
\r
37 TaggedRecord v = table[j];
\r
38 String vTag = v.getTag();
\r
40 for (i = j - 1; i >= 0; i -= 1) {
\r
41 if (vTag.compareTo(table[i].getTag()) >= 0) {
\r
45 table[i + 1] = table[i];
\r
52 public static int search(TaggedRecord[] table, int count, String tag)
\r
54 int log2 = Utility.highBit(count);
\r
55 int power = 1 << log2;
\r
56 int extra = count - power;
\r
60 if (table[extra].getTag().compareTo(tag) <= 0) {
\r
64 while (probe > (1 << 0)) {
\r
67 if (table[index + probe].getTag().compareTo(tag) <= 0) {
\r
72 if (table[index].getTag().equals(tag)) {
\r