Tag: 排序

使用Quicksort Java实现的Stackoverflow

在java中实现quicksort时遇到一些问题。 我运行这个程序时出现stackoverflow错误,我不确定为什么。 如果有人能够指出错误,那就太好了。 si是起始指数。 ei是结束指数。 public static void qsort(int[] a, int si, int ei){ //base case if(ei=ei){} else{ int pivot = a[si]; int length = ei – si + 1; int i = si+1; int tmp; //partition array for(int j = si+1; j a[j]){ tmp = a[j]; a[j] = a[i]; a[i] = tmp; i++; } […]

为什么我的JTable错误地排序整数列?

我有一个使用DefaultTableModel的JTable,我允许在用户点击列标题时进行排序。 但是,当用户单击具有integer类型数据的列的标头时,它不会正确排序。 它似乎是按String而不是整数类型排序。 这是我的代码中我实际将数据添加到表中的部分: DefaultTableModel aModel = (DefaultTableModel) mainView.logEntryTable.getModel(); ResultSetMetaData rsmd; try { mainView.logEntriesTableModel.setRowCount(0); rsmd = rs.getMetaData(); int colNo = rsmd.getColumnCount(); while(rs.next()){ Object[] objects = new Object[colNo]; for(int i=0;i<colNo;i++){ objects[i]=rs.getObject(i+1); } aModel.addRow(objects); count++; } mainView.logEntryTable.setModel(aModel); mainView.logEntryTable.getColumnModel().getColumn(0).setMaxWidth(80); 所以我试图覆盖那个方法并最终得到这个: @Override public Class getColumnClass(int columnIndex){ if( columnIndex == 0){ // Return the column class for the integer column […]

如何使用Comparator对ArrayList进行排序?

我有一个实现静态方法的类学生 public static Comparator getCompByName() 返回Student的新比较器对象,通过属性“name”比较2个Students对象。 我现在需要使用我的函数getCompByName()通过’name’对学生ArrayList进行排序来测试它。 这是我的Student课程中的Comparator方法。 public static Comparator getCompByName() { Comparator comp = new Comparator(){ @Override public int compare(Student s1, Student s2) { return s1.name.compareTo(s2.name); } }; return comp; } 而主要我需要测试的地方 public static void main(String[] args) { // TODO code application logic here //——–Student Class Test——————————————- ArrayList students = new ArrayList(); Student […]

字典最小排列使得所有相邻字母都是不同的

这是一个额外的学校任务,我们还没有接受任何教学,我不是在寻找完整的代码,但是一些提示将会非常酷。 我回到家时会发布到目前为止我用Java做的事情,但这里已经有了我已经做过的事情。 因此,我们必须进行排序算法,例如将“AAABBB”排序到ABABAB。 最大输入大小为10 ^ 6,所有这些都必须在1秒内完成。 如果有多个答案,则按字母顺序排列的第一个答案是正确答案。 我开始测试不同的算法,甚至在没有字母顺序要求的情况下对它们进行排序,只是为了看看事情是如何运作的。 第一版: 将ascii代码保存到Integer数组中,其中index是ascii代码,值是char数组中该字符出现的数量。 然后我选择了2个最高的数字,并开始将它们互相垃圾邮件发送到新的字符数组,直到某个数字更高,然后我换了它。 它运作良好,但当然订单不对。 第二版: 遵循相同的想法,但停止选择最常出现的数字,并按照它们在我的数组中的顺序选择索引。 运作良好,直到输入像CBAYYY。 算法将其分类为ABCYYY而不是AYBYCY。 当然,我可以尝试为那些Y找到一些免费的位置,但在那时它开始花费太长时间。

使Multimap仅在Java中按键排序

我想要一个仅基于键排序的cgccMultimap 。 不应对值进行排序。 我试图用番石榴的TreeMultimap构建一些东西,但我不能使用它,因为值类型没有实现Comparable 。 public class MyObject /* doesn’t implement Comparable */ { private String name; private int score; // Getters/setters are implemented public static Function myObjectToScore { @Override public Integer apply (MyObject o) { return o.score; } } public static Multimap indexOnScore(Iterable i) { Multimap m = Multimaps.index(i, myObjectToScore()); // Do the sort […]

Java中位数的中位数

我正在尝试使用Java实现这样的方法中的Median Median: Select(Comparable[] list, int pos, int colSize, int colMed) list是要查找指定位置的值列表 pos是指定的位置 colSize是我在第一阶段创建的列的大小 colMed是我用作medX的那些列中的位置 我不确定哪种排序算法最适合使用或如何实现这一点。

如何在JAVA中对JSONArray进行排序

如何按对象的字段对对象的JSONArray进行排序? 输入: [ { “ID”: “135”, “Name”: “Fargo Chan” }, { “ID”: “432”, “Name”: “Aaron Luke” }, { “ID”: “252”, “Name”: “Dilip Singh” } ]; 期望的输出(按“名称”字段排序): [ { “ID”: “432”, “Name”: “Aaron Luke” }, { “ID”: “252”, “Name”: “Dilip Singh” } { “ID”: “135”, “Name”: “Fargo Chan” }, ];

使用本地化排序字符串列表

我想按照用户区域设置排序下面的字符串列表 List words = Arrays.asList( “Äbc”, “äbc”, “Àbc”, “àbc”, “Abc”, “abc”, “ABC” ); 对于不同的用户区域设置,排序输出应根据区域设置而不同。 如何按用户区域设置对上面的列表进行排序? 我试过了 Collections.sort(words , String.CASE_INSENSITIVE_ORDER); 但是这不适用于本地化,那么如何将locale参数传递给Collections.sort()还是有其他有效方法吗?

在Java中的Mergesort

我是Java新手,并尝试在Java中实现mergesort。 但是,即使多次运行程序,而不是所需的排序输出,我得到相同的用户输入作为输出。 如果有人能帮助我理解这种意想不到的行为,我将感激不尽。 import java.io.*; import java.util.Arrays; public class MergeSort { public static void main(String[] args) throws IOException{ BufferedReader R = new BufferedReader(new InputStreamReader(System.in)); int arraySize = Integer.parseInt(R.readLine()); int[] inputArray = new int[arraySize]; for (int i = 0; i < arraySize; i++) { inputArray[i] = Integer.parseInt(R.readLine()); } mergeSort(inputArray); for (int j = 0; j 1) […]

使用预准备语句和变量将Java中的Order By与JDBC驱动程序绑定

我在用着 jdbcTemplate与mySQL数据库建立JDBC连接 准备好的语句尽可能地保护自己免受SQL注入攻击 需要接受来自用户的请求,以对十几个不同列中的任何一列进行数据排序 以下声明 jdbcTemplate.query(“SELECT * FROM TABLE1 ORDER BY ? ?”, colName, sortOrder); 当然这不起作用,因为变量绑定不应该仅为查询中的表达式的参数值指定列名。 那么……人们如何解决这个问题呢? 只是在Java代码中进行排序似乎是一个简单的解决方案,但是因为我得到一个变量字符串供列排序,一个变量告诉我排序顺序….这是一个丑陋的比较器条件数量盖。 这似乎应该是解决它的常见模式的常见问题……