您的位置:

java简单实现数组中的逆序对,java数组反序

本文目录一览:

用java 拜托了 将一个数组逆序输出

这个可以使用数组工具类Arrays的asList方法将数组变成List集合,然后使用集合工具类Collections的方法reverse方法将集合中的元素顺序反转,在将集合转换成数组,遍历数组打印即可。

public class Test

{

public static void main(String[] args)

{

String[] s={"a","b","c","d","e","f"};

ListString list=Arrays.asList(s);

Collections.reverse(list);

list.toArray(s);

for(String str:s)

{

System.out.print(str+" ");

}

}

}

如果满意,请采纳谢谢。

怎样求数组中逆序数对的个数(java)

private static int method(int[] array) {

    int count = 0;

    for (int i = 0; i  array.length; i++) {

        for (int j = i + 1; j  array.length; j++) {

            if (array[i]  array[j]) {

                count++;

            }

        }

    }

    return count;

}

private static int count = 0;

private void count(int[] array) {

    int length = array.length;

    int left = (int) (length / 2 + 0.5);

    int right = length / 2;

    int[] leftArray = new int[left];

    int[] rightArray = new int[right];

    System.arraycopy(array, 0, leftArray, 0, left);

    System.arraycopy(array, left, rightArray, 0, right);

    if (left  1  right  1) {

        count(leftArray);

        count(rightArray);

    }

    Arrays.sort(leftArray);

    Arrays.sort(rightArray);

    mergeCount(leftArray, rightArray);

}

private void mergeCount(int[] leftArray, int[] rightArray) {

    int leftLength = leftArray.length;

    int rightLength = rightArray.length;

    while (leftLength  0  rightLength  0) {

        if (leftArray[0]  rightArray[0]) {

            count = count + leftLength;

            System.arraycopy(rightArray, 1, rightArray, 0, rightLength - 1);

            rightLength--;

        } else {

            System.arraycopy(leftArray, 1, leftArray, 0, leftLength - 1);

            leftLength--;

        }

    }

}

private static Node[] nodes;

private static int[] tree;

private static int[] reflect;

private static int length;

private static int countArray(int[] array) {

    init(array);

    return doCount();

}

private static int doCount() {

    for (int i = 0; i  length; i++) {

        reflect[nodes[i].pos] = i + 1;

    }

    int count = 0;

    for (int i = 1; i = length; i++) {

        update(reflect[i]);

        count = count + i - sum(reflect[i]);

    }

    System.out.println(count);

    return count;

}

private static void init(int[] array) {

    length = array.length;

    nodes = new Node[length];

    reflect = new int[length + 1];

    tree = new int[length + 1];

    for (int i = 0; i  length; i++) {

        nodes[i] = new Node();

        nodes[i].value = array[i];

        nodes[i].pos = i + 1;

    }

    Arrays.sort(nodes, Comparator.comparingInt(o - o.value));

}

private static int lowbit(int x) {

    return x  (-x);

}

private static void update(int pos) {

    while (pos = length) {

        tree[pos] += 1;

        pos += lowbit(pos);

    }

}

private static int sum(int pos) {

    int sum = 0;

    while (pos  0) {

        sum += tree[pos];

        pos -= lowbit(pos);

    }

    return sum;

}

public static void main(String args[]) {

    int[] array = {40000000, 20000000, 3000000, 534435454, 732123434, 167675688, 46565656, 8};

    System.out.println(countArray(array));

}

//---------------//

class Node {

    int value;

    int pos;

}

java如何将数组倒序打印?

直接数组元素对换

使用ArrayList: ArrayList存入和取出的顺序是一样的,可以利用这里特性暂时存储数组元素.

使用Collections和Arrays工具类

零基础学习java可按照这份大纲来进行学习

第一阶段:Java专业基础课程

----------

阶段目标:

1. 熟练掌握Java的开发环境与编程核心知识

2. 熟练运用Java面向对象知识进行程序开发

3. 对Java的核心对象和组件有深入理解

4. 熟练应用JavaAPI相关知识

5. 熟练应用JAVA多线程技术

6. 能综合运用所学知识完成一个项目

知识点:

1、基本数据类型,运算符,数组,掌握基本数据类型转换,运算符,流程控制。

2、数组,排序算法,Java常用API,类和对象,了解类与对象,熟悉常用API。

3、面向对象特性,集合框架,熟悉面向对象三大特性,熟练使用集合框架。

4、IO流,多线程。

5、网络协议,线程运用。

---------

第二阶段:JavaWEB核心课程

阶段目标:

1. 熟练掌握数据库和MySQL核心技术

2. 深入理解JDBC与DAO数据库操作

3. 熟练运用JSP及Servlet技术完成网站后台开发

4. 深入理解缓存,连接池,注解,反射,泛型等知识

5. 能够运用所学知识完成自定义框架

知识点:

1、数据库知识,范式,MySQL配置,命令,建库建表,数据的增删改查,约束,视图,存储过程,函数,触发器,事务,游标,建模工具。

2、深入理解数据库管理系统通用知识及MySQL数据库的使用与管理。为Java后台开发打下坚实基础。Web页面元素,布局,CSS样式,盒模型,JavaScript,jQuery。

3、掌握前端开发技术,掌握jQuery。

4、Servlet,EL表达式,会话跟踪技术,过滤器,FreeMarker。

5、掌握Servlet相关技术,利用Servlet,JSP相关应用技术和DAO完成B/S架构下的应用开发。

6、泛型,反射,注解。

7、掌握JAVA高级应用,利用泛型,注解,枚举完成自己的CRUD框架开发为后续框架学习做铺垫。

8、单点登录,支付功能,项目整合,分页封装熟练运用JSP及Servlet核心知识完成项目实战。

---------

第三阶段:JavaEE框架课程

阶段目标:

1. 熟练运用Linux操作系统常见命令及完成环境部署和Nginx服务器的配置

2. 熟练运用JavaEE三大核心框架:Spring,SpringMVC,MyBatis

3. 熟练运用Maven,并使用SpringBoot进行快速框架搭建

4. 深入理解框架的实现原理,Java底层技术,企业级应用等

5. 使用Shiro,Ztree和Spring,SpringMVC,Mybaits完成企业项目

知识点:

1、Linux安装配置,文件目录操作,VI命令,管理,用户与权限,环境部署,Struts2概述,hiberante概述。

2、Linux作为一个主流的服务器操作系统,是每一个开发工程师必须掌握的重点技术,并且能够熟练运用。

3、SSH的整合,MyBatis,SpringMVC,Maven的使用。

4、了解AOP原理,了解中央控制器原理,掌握MyBatis框架,掌握SSM框架的整合。

5、Shiro,Ztree,项目文档,项目规范,需求分析,原型图设计,数据库设计,工程构建,需求评审,配置管理,BUG修复,项目管理等。

6、独立自主完成一个中小型的企业级综合项目的设计和整体架构的原型和建模。独立自主完成一个大型的企业级综合项目,并具备商业价值

用java定义一个长度为n的数组,实现该数组的逆序排列,n从键盘输入

import java.util.Scanner;

public class Test{

Scanner scan = new Scanner(System.in);

System.out.print("请输入数组长度:");

int n = scan.nextInt();

System.out.println("请输入数组内容(用空格隔开):");

int[] arr = new int[n];

for(int i=0;in;i++){

arr[i] = scan.nextInt();

}

for(int i=0;in;i++){

for(int j=0;jn-i-1;j++){

if(arr[j]arr[j+1]){

int temp = arr[j];

arr[j] = arr[j+1];

arr[j+1] = temp;

}

}

}

System.out.println("经逆序排列后,结果为:");

for(int i=0;in;i++){

System.out.println(arr[i]+" ");

}

}

冒泡排序那里没太学扎实,可能有错误。

用Java编写程序,定义一个数组,实现数组逆序排列.

完全调用api:

import java.util.Arrays;

import java.util.Collections;

import java.util.List;

public class OtherWeekTime {

public static void main(String[] args){

Integer[] a = {58,69,23,158,4,50};

List list = Arrays.asList(a);

Collections.sort(list);

Collections.reverse(list);

a = (Integer[]) list.toArray();

for(int i:a){

System.out.println(i);

}

}

}