
正文
java倒排索引代码 java倒序
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
Java 数组倒序输出
System.out.print("请输入5个数字: ");
Scanner stdin = new Scanner(System.in);
int[] A = new int[5];
for(int i=0;i5;i++)A[i]=stdin.nextInt();
java.util.Arrays.sort(A);
System.out.print("倒序输出: ");
for (int k = A.length-1; k = 0; k--) {
System.out.print(A[k]+" ");
}
你原来的代码太乱了,所以我自己写了。然后说说你代码的问题。
首先,你String sc = stdin.next(); 只是得到第一个空格前的东西,所以你不可能得到"1 2 3 4 5"这样带空格的字符串,要得到带空格的一行的话,请认准String sc = stdin.nextLine();谢谢~~
然后, String []result = null;只是声明了一个叫result的数组,还没给数组分配空间呢,所以请用 String []result = new String[5];来为数组分配空间。(为什么需要给数组分配空间呢?因为为了提高效率,数组的大小被定义为不变,于是需要你为其初始化大小,即通过new array_type[num]的形式来声明)
再者, for(int i=A.length; i=0; i--)这行也有问题,数组大小比数组最大索引大1,因为数组是从0开始计数的。还有System.out.print(result[k]);这句,你连个分隔符都没有,到时候输出来的就成一连串的数字了,比如本来应该是12 13 17 34 54 的却成了1213173454,你叫人怎么看呢?
最后,你是不是要写冒泡啊?话说,你的冒泡也是猛了点吧。。四不像呢这是。。
PS:我偷懒用类库了,你们诅咒我被雷劈掉吧~~
相关问答
Q1: 一个不定长的string数组,怎样按索引倒序输出?java编程
String[] str;
for(int i=str.length;i0;i--){
System.out.println(str[i]);
}
Q2: java 如何实现数组排序并输出每个数字原来的索引
java变成对数组进行排序可以使用ArraySort方法java倒排索引代码,保存源数组下标值可以存入map中java倒排索引代码,如下代码java倒排索引代码:
import java.util.ArrayList;import java.util.Arrays;import java.util.HashMap;import java.util.List; public class ceshi { public static void main(String[] args) { int n = 5; int[] a = { 8, 5, 4, 6, 2, 1, 7, 9, 3 }; HashMap map = new HashMap(); for (int i = 0; i a.length; i++) { map.put(a[i], i); // 将值和下标存入Map } // 排列 List list = new ArrayList(); Arrays.sort(a); // 升序排列 for (int i = 0; i a.length; i++) { list.add(a[i]); } for (Object object : list) { System.out.print(object + ","); } System.out.println(); // 查找原始下标 for (int i = 0; i n; i++) { System.out.print(map.get(a[i]) + ","); } } }
运行结果如下java倒排索引代码:
Q3: JAVA编程问题求助 编写程序,把一个数组中的元素倒过来。例如原数组为1,2,3,4,5。则倒排
import java.util.*;
import static java.lang.System.*;
import static java.util.Arrays.*;
public class Test
{
public static void main(String[] args)
{
Integer[] array={1,2,3,4,5};
//数组工具类的排列方法,我开始尝试使用Lambda表达式但是失败了
sort(array,new ComparatorInteger()
{
public int compare(Integer a,Integer b)
{
//如果a大于b返回a小于b,反之亦然,造成倒序排列的效果
return ab?-1:ab?1:0;
}
});
//输出排列后的数组,输出"[5, 4, 3, 2, 1]"
out.println(Arrays.toString(array));
}
}
Q4: 搜索引擎索引-倒排索引
Elasticsearch中使用一种称为倒排索引的结构,适用于快速的全文搜索。
一个倒排索引由文档中所有不能重复词的列表构成,对于其中每个词,有一个包含它的文档列表。
示例:
1、假设文档集合包含五个文档,每个文档内容表所示,表的最左端一栏是每个文档对应的文档编号,我们的任务就是对这个文档集合建立倒排索引。
2、中文和英文等语言不同、单词之间没有明确分隔符号,所以首先要用分词系统将文档自动切分成单词序列。这样每个文档就转换为由单词序列构成的数据流,为了系统后续处理方便,需要对每个不同的单词赋予唯一的单词编号,同时记录下哪些文档包含这个单词,在如此处理结束后,我们可以得到最简单的倒排索引。
“单词ID”一栏记录了每个单词的单词编号,第二栏是对应的单词,第三栏即每个单词对应的倒排索引。
3、索引系统还可以记录除此之外的更多信息,下表还记录了单词频率信息(TF)即这个单词在某个文档中出现的次数,之所以要记录这个信息,是因为词频信息在搜索结果排序时,计算查询和文档相似度是很重要的一个计算因子,所以将其记录在倒排列表中,以方便后续排序时进行分值计算。
4、倒排列表中还可以记录单词在某个文档出现的位置信息
(1,11,1),(2,7,1),(3,3,9,2)
有了这个索引系统,搜索引擎可以很方便地相应用户的查询,比如用户输入查询词“Facebook”,搜索系统查找倒排索引,从中可以读出包含这个单词的文档,这些文档就是提供给用户的搜索结果,而利用单词频率信息、文档频率信息既可以对这些候选搜索结果进行排序,计算文档和查询的相似性,按照相似性得分由高到低排序输出,此即为搜索系统的部分内部流程。
示例:
Quick 和 quick 以独立的词条出现,然后用户可能认为它们是相同的词。
fox 和 foxes 非常相似,就像 dog 和 dogs,它们由相同的词根。
jumped 和 leap ,尽管没有相同的词根,但是它们的意思很相近,是同义词。
搜索含有 Quick fox的文档是搜不到的。
使用标准规划规则,建立倒排索引的时候,会对拆分出的各个单词进行相应的处理,以提升后面搜索的时候能够搜索到相关联的文档的概率。
Q5: JAVA字符串获取索引问题,为什么不能正确返回索引而是返回-1,代码如下
字符:H E L L O!
位置:0 1 2 3 4 5
lastIndexOf()是从后往前找,lastIndexOf('L',1)表示从 E 往前找,当然找不到了,
你把 lastIndexOf('L',2或3或4或5)就能找到了。
java倒排索引代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java倒序、java倒排索引代码的信息别忘了在本站进行查找喔。






