如何用java实现一个数组的排列

Python08

如何用java实现一个数组的排列,第1张

首先根据数组的类型不同排序方式也是不同的,如果是基本类型数组,那么使用冒泡或者其他排序方式都是很简单的,例如:http://blog.csdn.net/yyywyr/article/details/8075433。如果不想自己写排序算法那么使用Arrays.sort()进行排序也是不错的。

如果是自定义类型的数组,推荐使用java自带的工具类:Comparable接口,并重写CompareTo()方法。或者Compartor。

1.1. 队列的数据结构

队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。

1.2. Java实现

QueueTest

package ch04

public class QueueTest {

public static void main(String[] args) {

ArrayQueue queue = new ArrayQueue(10)

System.out.println(queue.isEmpty())

for (int i = 0i <10i++) {

queue.insert(i)

}

System.out.println(queue.isFull())

while (!queue.isEmpty()) {

System.out.println(queue.remove())

}

}

}

class ArrayQueue {

private int[] arrInt// 内置数组

private int front// 头指针

private int rear// 尾指针

public ArrayQueue(int size) {

this.arrInt = new int[size]

front = 0

rear = -1

}

/**

* 判断队列是否为空

*

* @return

*/

public boolean isEmpty() {

return front == arrInt.length

}

/**

* 判断队列是否已满

*

* @return

*/

public boolean isFull() {

return arrInt.length - 1 == rear

}

/**

* 向队列的队尾插入一个元素

*/

public void insert(int item) {

if (isFull()) {

throw new RuntimeException("队列已满")

}

arrInt[++rear] = item

}

/**

* 获得对头元素

*

* @return

*/

public int peekFront() {

return arrInt[front]

}

/**

* 获得队尾元素

*

* @return

*/

public int peekRear() {

return arrInt[rear]

}

/**

* 从队列的对头移除一个元素

*

* @return

*/

public int remove() {

if (isEmpty()) {

throw new RuntimeException("队列为空")

}

return arrInt[front++]

}

}

运行结果如下:

false

true

0

1

2

3

4

5

6

7

8

9

这个涉及到编译原理的问题,我只能说,这是一个编译规范。在规范中比如:int[],中的int告诉计算机这是一个整型数据,[]告诉计算机这是一个连续存储的内存地址空间,简单点说一个连续数据的存储空间就是数组,数组只是一个名称!!当然我只是简略的这样说,实际上数组是很复杂的!!