javaunsort的简单介绍

博主:adminadmin 2023-01-13 01:21:06 292

本篇文章给大家谈谈javaunsort,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

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和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。