冒泡小算法1

冒泡算法:

例题.1

import java.util.*;
public class Nixun {
    public static void main(String[] args)
    {    
        System.out.println("一维数组逆序前的结果:");
        int a[]={9,8,7,6,5,4,3,2,1};
        Arrays.sort(a);
        for(int i=0;i<a.length;i++)
        {
            System.out.print(" "+a[i]);
        }
        }

这个是调用了java.util.*;的工具包,用了Arrays.sort(a);方法即可,其中Arrays是数组的意思,而sort是排序,分类的意思。

要调用Arrays方法必须调用工具包才能用。

当然这个题还有其他的解法。

解法二;

public class Nixun {
    public static void main(String[] args)
    {    
        System.out.println("一维数组逆序前的结果:");
        int a[]={9,8,7,6,5,4,3,2,1};
 
        for(int i=0;i<a.length;i++)
        {
            System.out.print(" "+a[i]);
        }
        
        
        System.out.println("之后的结果是:");
        for(int j=a.length-1;j>=0;j--)
        {
            System.out.print(" "+a[j]);
        }

例题.2

public class A {
    public static void main(String[] args)
    {
         int score[] = {67, 69, 75, 87, 89, 90, 99, 100};
         for(int i=0;i<score.length-1;i++)  //只需要比较 n-1次
         {
             for(int j=0;j<score.length-i-1;j++) //这里是区间[0······ score.length-i-1]的值比较。
             {
                 if(score[j]<score[j+1])
                 {
                     int temp;
                     temp=score[j+1];
                     score[j+1]=score[j];
                     score[j]=temp;
                 }
             }

}
          System.out.println("最终结果是:");
          for(int a=0;a<score.length;a++)
          {
               System.out.print(score[a]+"\t");
          }
    
 
}
}

时间: 2024-08-27 17:02:22

冒泡小算法1的相关文章

java每日小算法(27)

/* [程序27]  题目:求100之内的素数    */ package test; import java.util.Scanner; public class test { public static boolean prime(int number) { boolean flag = true; int mid = (int)Math.sqrt(number); for(int i = 2; i< mid+1; i++) { if(number % i == 0) { flag = fa

java每日小算法(4)

[程序4] 题目:将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5. 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可. (2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步. (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步. package test; import java.util.ArrayList;

特殊的日子(2015年5月1日劳动节)纪念回归和新的征程,用LRU和LFU两个小算法原理和区别来抛砖引玉

很久没有写过新的博客了,原因有很多,冠冕堂皇的理由就是工作忙,生活忙,各种累,直白一点其实就是变懒了,所以没有写. 在沉寂了这么长一段时间过后,终于又要重新出发了,对于自己当前的状态,觉得首先要有所沉淀,然后就是要放空自己,唯有放空自己方能继续进步. 以后一段时间更新的博客内容主体是与Android Framework相关的疑难问题分析.机制实现的原理.源代码调用分析,然后伴有一些常用的小算法,语言特性,程序原理等. 今天就先介绍LRU和LFU这两个在Android的Framework以及App

循环圈小算法

小算法循环圈的公式:(n+1) % (maxN+1) 比如实现0到3的循环 0+1 %4 = 1 1+1 %4 = 2 2+1 %4 = 3 3+1 %4 = 0 比如实现1到3的循环 1+1 %4 = 2 2+1 %4 = 3 3+1 %4 = 1

大数据处理时的一种BitMap小算法

一种大数据外部排序(内存无法加载所有排序元素).去除重复元素.快速找到随机被删除元素的BitMap小算法,核心思想即通过将一个数作为下标(index)来索引一个bit表示一个数是否存在,排序时的时间复杂度为O(N),需要的额外空间的复杂度O(N/8),支持整个int范围(正负数都支持)的算法示例如下: char BitMask[] = {0x80 , 0x40 , 0x20 , 0x10 , 0x8 , 0x4 , 0x2 , 0x1}; int WriteNumberBitToByte(cha

小算法笔记

素数: 除 1 外只能被 1 和自身整除的数. 方法一: #include <stdio.h> #define N 1000 int num = 0; int prime(int n) { int i; if(n % 2 == 0) return (n == 2); if(n % 3 == 0) return (n == 3); if(n % 5 == 0) return (n == 5); for(i = 7; i*i <= n; ++i) if(n % i == 0) return

每天一个小算法(3)----倒序打印链表

这个比较简单,用栈.递归.倒转链表都可以实现,不再过多解释. 代码使用递归实现 1 #include <stdio.h> 2 #include <time.h> 3 #include <stdlib.h> 4 typedef struct Node 5 { 6 int data; 7 Node* next; 8 }Node, *List; 9 10 11 List createList(int num) //随机生成数字,构造链表 12 { 13 List aList

java每日小算法(10)

/*[程序10]  题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高? */ package test; public class test { public static void main(String[] args) { // TODO Auto-generated method stub double high = 100.0; double jump = 0.0; double sum = 0.0; for(

每天一个小算法(2)----合并两个有序链表

每天一个小算法还是有点没时间,尽量抽出时间写一写. 今天是合并有序的链表,对单链表有点忘了,尤其是指针指来指去的,有点晕,幸好基础还算好,想了想还是能想回来. 代码使用随机数函数生成一个链表,然后对链表排序,最后合并链表并打印,删除链表的函数于算法无关紧要,所以未实现^_^. 在Linux/g++下编译运行成功. 合并思路:和合并数组有些类同,比较两个节点的元素大小然后将小的摘下来尾插到链表bList中,然后指针指向下一个节点,最后直接把非空的链表合并到bList的末尾. 1 #include