求n(n>1000000)个数,数组10个数最大值,java实现
int[] s={5,4,6,3,2...};//这里有n个数
Arrays.sort(s);//对n个数排序就可以了
int k=10;//这里要取其中的10个最大
for(int i=n;i<k;i--){
System.out.println(s[n]);//输出最大10个整数
}
Fibonacci数列,java实现
public class Fibonacci{
public static void main(String args[]){
int nums = fibonacci(8);
System.out.println(nums);
}
static int fibonacci(int n){
if(n<=1) return 1;
return fibonacci(n-1)+fibonacci(n-2);
}
}
java实现队列pop,push
public class ArrayQueue<E> {
private E[] data;
// 当前队列中元素的大小
private int size;
private int front;
private int rear;
public ArrayQueue() {
data = (E[]) new Object[20];
size = 0;
front = 0;
rear = 0;
}
public void add(E target) {
if (isFull()) {
enlarge();
//数组队列满后,需要扩充,记住扩充后要将front的值归0
front=0;
}
rear = (front + size) % data.length;
data[rear] = target;
size++;
}
public boolean isEmpty() {
return size == 0;
}
/**
* 判断当前队列是否已满
*
* @return
*/
public boolean isFull() {
return size == data.length;
}
/**
* 将数组容量扩大两倍
*
*/
public void enlarge() {
E[] newData = (E[]) new Object[data.length * 2];
for (int i = 0; i < data.length; i++) {
newData[i] = data[i];
}
data = newData;
newData = null;
}
public E remove() {
if (isEmpty()) {
throw new RuntimeException("队列为空!");
}
E tempData = data[front];
data[front] = null;
front = (front + 1) % (data.length);
size--;
return tempData;
}
public int size() {
return size;
}
public E front() {
if (isEmpty()) {
throw new RuntimeException("队列为空!");
}
return data[front];
}
}
逆序数,c语言实现
const int LENGTH=100;
int temp[LENGTH]; //额外的辅助数组
int count=0;
void Merge(int * array,int first,int med,int last)
{
int i=first,j=med+1;
int cur=0;
while (i<=med&&j<=last)
{
if (array[i]<array[j])
{
temp[cur++]=array[i++];
}
else
{
temp[cur++]=array[j++];
count+=med-i+1; //核心代码,逆序数增加
}
}
while (i<=med)
{
temp[cur++]=array[i++];
}
while (j<=last)
{
temp[cur++]=array[j++];
}
for (int m=0;m<cur;m++)
{
array[first++]=temp[m++];
}
}
void MergeSort(int *array,int first,int last)
{
if (first==last)
{
return ;
}
int med=first+(last-first)/2;
MergeSort(array,first,med);
MergeSort(array,med+1,last);
Merge(array,first,med,last);
}