当前位置: 首页 > 知识库问答 >
问题:

从输入文件对数组进行Shellsorting

尹庆
2023-03-14

整个项目是从一个文件中获取数据,该文件是一个文本文件,其中载有所有201个国家的名单及其按字母顺序排列的各自互联网使用率。这里有一个例子

Afghanistan                 7
Albania                    63
Algeria                    20
Andorra                    97
Angola                     23
...
import java.io.*;
import java.util.*;

public class InternetUsers {
public static void main(String[] args) throws IOException{
    // TODO Auto-generated method stub

    String populationString = "";
    String[] line = new String[201];
    int populations[] = new int[201];   

    Scanner fileIN = new Scanner(new File("F:/CountrySortedAlpha.txt"));

    while(fileIN.hasNext()){
        for(int i = 0; i < 201; i++){
            populationString = fileIN.nextLine().substring(26, 29);
            populations[i] = Integer.parseInt(populationString.trim());
        }   
        int j;
            for(int gap = populations.length / 2; gap > 0; gap /= 2){
                for (int k = 0; k < populations.length; k++){   
                }
                for (int t = gap; t < populations.length; t++){
                    int tmp = populations[t];
                        for(j = t; j >= gap && (tmp < populations[j - gap]); j -= gap){
                            populations[j] = populations[j - gap];
                        }
                        populations[j] = tmp;
                }
        }
        System.out.println("\nFinal sorted order: ");
        for(int k = 0; k < populations.length; k++){
            System.out.print(populations[k]);
            System.out.println("");
        }
        System.out.println();
    }   
}
}
 Final sorted order: 
 1
 1
 2
 2
 2
 2
 2
 3
 ....

共有1个答案

穆展鹏
2023-03-14

除非教授。具体来说,用一个字符串数组来表示国家,用一个int数组来表示利率,@ScaryWombat的想法是一个对象数组,每个对象包含一个字符串和一个int。

也就是说,如果必须的话,您仍然可以使用单独的数组来完成。只要确保在排序算法调用交换时交换填充条目,而不仅仅是填充条目。

 类似资料:
  • 我正在从一个txt文件中读取一个等级列表到一个数组中。它在读取用户输入时运行良好,但在扫描文件时,我无法读取每一行。学生人数是可变的。每个学生的分数是可变的。我在阅读学生人数和作业数量方面没有问题,但在阅读文件时,我很难从每一行中提取每个学生的整数(分数)。输入可以是a或b(或更多的学生/作业): txt-example1(包括//和//之后的注释是我自己的,不在txt文件中) TXT-例子 我可

  • Leetcode#167几乎与#1相同,但为什么我不能只添加一个if条件? 函数twoSum应该返回两个数字的索引,使它们相加为目标,其中index1必须小于index2。 注: 返回的答案(index1和index2)不是从零开始的。您可以假设每个输入都有一个解决方案,并且不能两次使用同一个元素。

  • 所以我看了几个解决方案,但没有一个对我有效。感谢一些人,我最终得到了无限循环,但它仍然对我不起作用。我想将文件“output.txt”读入对象列表。所以我提供了剩下的代码,因为我认为它们不会有任何帮助... 错误消息如下: java.io.StreamCreptedException:无效的流头:3134313b,位于java.io.objectinPutStream.ReadStreamHead

  • 问题内容: 我有一个输入类型的文件,我在其中将要放入javascript的变量中进行操作。 HTML: JavaScript: 我如何删除上载变量中的特定项目?我搜索到输入类型文件是只读的,除非将其放入数组并使用ajax上载文件,否则您将无法对其进行操作。 即时通讯这样做上传到我的画廊。首先,我选择多个图像。然后在上传之前先预览图片。还可以选择删除照片。我的问题是。如何删除输入文件中的照片文件。因

  • 我对Java非常陌生,因此遇到了很大的困难。这是我想做的,但似乎不太奏效。 请看附上的Java代码和文本文件(截图在链接)。 文本文件:

  • 函数功能:在控件中输入文字 函数方法 widget.setText(wid,text) 参数 类型 必填 说明 wid userdata 是 控件对象 text string 是 需要输入的文字 函数用例 --脚本页面 点击新建脚本按钮 输入文字 --除控件函数外请勿将其他积木编程函数用于触动精灵,同理请勿将触动精灵函数用于积木编程 mSleep(1000) wid = widget.find({