javaunsort的简单介绍
本篇文章给大家谈谈javaunsort,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java中map的排序问题
- 2、请写一程式读入未排序资料档案unsort.dat,接著使用堆排序,将排序好的资料写入heapsort.java档案之中。
- 3、Acmcoder 1106题 java语言写的 本机测试结果正确,为何提交后老是显示Wrong Answer
java中map的排序问题
HashMap里面的元素是无序的,要进行排序的话只能是用TreeMap和SortedMap,例如:
public static void main(String[] args) throws Exception{
MapString, Integer map=new TreeMapString, Integer();
map.put("1", 1);
map.put("9", 9);
map.put("4", 4);
map.put("2", 2);
map.put("8", 8);
map=mapSortByKey(map);
System.out.println(map.toString());
}
private static SortedMapString, Integer mapSortByKey(MapString, Integer unsort_map) {
TreeMapString, Integer result = new TreeMapString, Integer();
Object[] unsort_key = unsort_map.keySet().toArray();
Arrays.sort(unsort_key);
for (int i = 0; i unsort_key.length; i++) {
result.put(unsort_key[i].toString(), unsort_map.get(unsort_key[i]));
}
return result.tailMap(result.firstKey());
}
请写一程式读入未排序资料档案unsort.dat,接著使用堆排序,将排序好的资料写入heapsort.java档案之中。
import java.util.*;
class Contact{
/**
* 堆排序
*/
private static void heapSort ( int[] array, int start, int len )
{
int pos = ( len - 1 ) / 2;
for ( int i = pos; i = 0; i-- )
{
int tmp = array[start + i];
int index = i * 2 + 1;
while (index len)
{
if (index + 1 len array[start + index] array[start + index + 1]) // 从小到大
{
index += 1;
}
if (tmp array[start + index]) // 从小到大
{
array[start + i] = array[start + index];
i = index;
index = i * 2 + 1;
}
else
{
break;
}
}
array[start + i] = tmp;
}
for ( int i = 0; i len; i++ )
{
int temp = array
本篇文章给大家谈谈javaunsort,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
;array
本篇文章给大家谈谈javaunsort,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
= array[start + len - 1 - i];array[start + len - 1 - i] = temp;
// 再一次
int post = 0;
int tmp = array[start + post];
int index = 2 * post + 1;
while (index len - 1 - i)
{
if (index + 1 len - 1 - i array[start + index] array[start + index + 1]) // 从小到大
{
index += 1;
}
if (tmp array[start + index]) // 从小到大
{
array[start + post] = array[start + index];
post = index;
index = post * 2 + 1;
}
else
{
break;
}
}
array[start + post] = tmp;
}
}
public static void main(String[] args){
Scanner s=new Scanner(new File("unsort.dat"));
int[] arr=new int[0];
while(s.hasNextLine()){
int[] dst=new int[arr.length+1];
System.arraycopy(arr,0,dst,0,arr.length);
dst[dst.length-1]=Integer.parseInt(s.nextLine().trim());
}
s.close();
System.out.println (Arrays.toString (arr));
heapSort (arr, 0, arr.length);
String tmp=Arrays.toString (arr);
System.out.println (tmp);
FileWriter fw=new FileWriter("heapsort.java");
fw.write(tmp.replaceAll("[\\[\\],\\s]","\r\n"));
fw.flush();
fw.close();
}
}
Acmcoder 1106题 java语言写的 本机测试结果正确,为何提交后老是显示Wrong Answer
没有考虑5在字符串开头或者末尾的情况(例如输入时5152)
也没有考虑字符串中连续出现5的情况(例如输入是1525535)
这两种情况对应的splitor数组中有的项为""。
这题建议用List(动态数组),代码如下
for (int i = 0; i splitor.length; i++) {
if (!splitor[i].equals("")) {
list.add(Integer.parseInt(splitor[i]));
}
}
关于javaunsort和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。