だからここに私の問題があります:私は挿入ソートの形式を実行しようとしています。実際、私はバイナリ検索アルゴリズムを使用してArrayListを検索し、文字列を挿入する場所を見つけようとしています。私がこれまでに持っているものは、ある種の作品です。半順序です。私はこれに一週間以上困惑しています!以下は私のコードです:
編集:申し訳ありませんが、私は人々を混乱させたと思います。私の質問は、これを正しく機能するように編集するにはどうすればよいですか。オブジェクトを半順序で挿入します。完全注文である必要があります!これがどこで起こっているのかわかりません。解析されているデータが多すぎて、この行の行をデバッグすることもできません。
private void insertOrdered(int frontParameter, int endParameter, TwitterData user) {
int front = frontParameter;
int end = endParameter;
int mid = (front+end)/2;
if (front > end) {
if (user.getUsername().equalsIgnoreCase(users.get(mid).getUsername()))
users.get(mid).addTweet(user.getTweets().get(0));
else
users.add(mid, user);
}
if (user.getUsername().toLowerCase().compareTo(users.get(mid).getUsername().toLowerCase()) < 0) {
insertOrdered(front, mid - 1, user);
}
else if (user.getUsername().toLowerCase().compareTo(users.get(mid).getUsername().toLowerCase()) > 0) {
insertOrdered(mid + 1, end, user);
}
else { //will get to this case if the usernames being tested are equal
users.get(mid).addTweet(user.getTweets().get(0)); //if the user is already in the list, just add the tweet. It is assumed that the user being passed in will only have one tweet tied to their information hence the get(0)
}
}
いくつかの背景情報のために、私はこれをTwitterユーザー名とそれに関連するツイートのArrayListに使用しています。渡されたパラメーターuserは、私が作成したクラスのTwitterDataオブジェクトです。すべての集中的な目的のために、ユーザーがツイートした可能性のあるユーザー名とツイートのリストを取得できるかどうかを知る必要があります。以下は、リストの最初の100人のユーザーのテスト出力であり、部分的に機能していることの意味を示しています。
最初の100ユーザーの出力:
4colorrebellion
50BandBuckie
2996mymy
20120040
_littlethugg
_IndyaWithaWHY_
__PrettyMistake
__Mannyy24
_MikeFishh
_NikeDeshaun_
_TinaBeana
_PrincesaNessa
_LoveInPaaaris
_Victoria_Ortiz
adriannstacey21
ahansen718
action_packed_
Alicemegan93
alexgracehunter
AlishaaShaffer
arowsey_15
Amy_Vee
allycolucci
AmbiTious___xO
aguss__A
averybrownn
babbyyy_itsREAL
ando775
bburns1117
amberdorais
AshMarieMonica
Ashton_45
_SarahJustine
BlasianCocaine
belieber_pride
AyeeIts_DeeDee
BrianHodges
BritFranceNews
Big_Red911
BiteMy_SlimJim
BadGirlYon
Cemonee_Allisse
cathy_riveros
byby_35
CEOSIXX
busybeekatie
ChelsiKatherine
BOOBtifulJohnny
Coolie_Mackin
coralreefer420
CrashBandaCooch
codyalexander23
cubanrice
corrinea143
Cyndi_R82
danny728_
dbangin
ASNievera
DeAndre_Johnson
Deion_Hungry
DStudmuffin
cowellEmma
expired_data
Dr_drew_V93
feather_hinn
DominiqueQ2
getbackamistake
Da_Dirty_Dern
dudeimisaac
elennatalbert
evillurking
fANNcy_
covolm4
HimOverHere
DameLush
erinnnroach
freaky_fahfah
freesugardaddy
elhotpocket
FollowMandy
HaileyySorenson
DomoNinjaSwagg
IamSalinaScott
fredthemarauder
IAmTHATguy_1
facucuellar
iDream_Mindless
hirschy_kiss94
freshmoney5
HannahMcC_x
GarrieBrocato
AyeeeCali
iSexTattedDudes
Illumi_Lani
itsyunk
jahzzi
Jamie_Hill101
iHeartAudiooooX
jaymethornley
JasonMyers18
もう1つ、最後のelseケースは正しく機能します。ArrayListに送信されるあらゆる種類のデュアルユーザーを排除しました。何か案は?