所以这是我的问题:我正在尝试进行一种插入排序。实际上,我正在尝试使用二进制搜索算法搜索 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
还有一件事,最后一个 else 案例确实可以正常工作。我已经消除了提交给 ArrayList 的任何类型的双重用户。有任何想法吗?