java冒泡排序算法代码_java

复制代码 代码如下:

/**
 * 原理:
 * 进行n次循环,每次循环从后往前对相邻两个元素进行比较,小的往前,大的往后
 *
 * 时间复杂度:
 * 平均情况:O(n^2)
 * 最好情况:O(n)
 * 最坏情况:O(n^2)
 *
 * 稳定性:稳定
 **/
public class 冒泡排序 {

    public int[] bubbleSort(int[] a, int n) {
        for (int i = 0; i < n; i++) {
            int flag = 0;
            for (int j = n - 1; j > i; j--) {// i or i-1 ?
                if (a[j] < a[j - 1]) {
                    int x = a[j];
                    a[j] = a[j - 1];
                    a[j - 1] = x;
                    flag = 1;
                }
            }
            if (flag == 0)
                break;
        }
        return a;
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int[] a = new int[] { 25, 56, 32, 20, 1, 5, 89, 3, 8, 41 };
        冒泡排序 sort = new 冒泡排序();
        sort.bubbleSort(a, a.length);
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i] + " ");
        }
    }
}

时间: 2024-09-12 02:15:15

java冒泡排序算法代码_java的相关文章

Java实现几种常见排序算法代码_java

稳定度(稳定性)一个排序算法是稳定的,就是当有两个相等记录的关键字R和S,且在原本的列表中R出现在S之前,在排序过的列表中R也将会是在S之前. 排序算法分类 常见的有插入(插入排序/希尔排序).交换(冒泡排序/快速排序).选择(选择排序).合并(归并排序)等. 一.插入排序 插入排序(Insertion Sort),它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入.插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),

java 数据结构 冒泡排序实现代码_java

冒泡(Bubble Sort)排序的基本思想是:将待排序的数组看作从上倒下排列,把关键字较小的记录看作较轻的,关键字较大的看作较重的,较小的关键字的值看作是水中的气泡向上浮,较大的关键字如水中的石块向下沉,当气泡都浮到相应的位置的时候排序结束. 算法性能分析                         (1)      时间复杂素.总的一定此次数为3/2(n-1)*n                         (2)      空间复杂度.仅用了一个辅助单元空间复杂度为O(1)    

Java执行JavaScript代码_java

我们要在Java中执行JavaScriptMethods.js中的execute(s1,s2)方法,JavaScriptMethods.js文件内容如下: function execute(s1, s2){ return s1 + s2; } 首先需要定义一个接口,这个接口中给出与要执行的JavaScript方法一样的方法签名,我们定义接口Methods,它的内容如下: /** * 接口中的方法签名必须与要执行的JavaScript方法一致 * @author yuncong * */ publ

十种JAVA排序算法实例_java

排序算法有很多,所以在特定情景中使用哪一种算法很重要.为了选择合适的算法,可以按照建议的顺序考虑以下标准: (1)执行时间 (2)存储空间 (3)编程工作  对于数据量较小的情形,(1)(2)差别不大,主要考虑(3):而对于数据量大的,(1)为首要.  一.冒泡(Bubble)排序 复制代码 代码如下: void BubbleSortArray() {       for(int i=1;i<n;i++)       {         for(int j=0;i<n-i;j++)      

控制台显示java冒泡排序流程示例_java

类:Nums    权限:public方法:main    权限:public参数:nums,i,j,num;参数介绍:nums,数据类型 int[] ,用来存储 int 型的一系列数组:i,数据类型 int ,作为 for 循环的循环变量,存储排序比较的轮数:j,数据类型 int ,作为 for 循环的循环变量,存储该轮排序比较的次数:num,数据类型 int ,作为两值互换的第三方变量.方法功能: 定义一个 int[] 数组:设置一个循环变量 i ,记录比较轮数:设置一个循环变量 j ,记录

史上最全的java随机数生成算法分享_java

复制代码 代码如下: String password = RandomUtil.generateString(10); 源码如下: 复制代码 代码如下: package com.javaniu.core.util;import java.util.Random;public class RandomUtil { public static final String ALLCHAR = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRS

希尔排序的算法代码_java

希尔排序的时间复杂度为O(n*log2n) 空间复杂度为O(1)是一种不稳定的排序算法 思想:希尔排序也是一种插入排序方法,实际上是一种分组插入方法.先取定一个小于n的整数d1作为第一个增量,把表的全部记录分成d1个组,所有距离为d1的倍数的记录放在同一个组中,在各组内进行直接插入排序:然后,取第二个增量d2(<d1),重复上述的分组和排序,直至所取的增量dt=1(dt<dt-1<-<d2<d1),即所有记录放在同一组中进行直接插入排序为止.    复制代码 代码如下: vo

PHP冒泡排序算法代码详细解读_php技巧

复制代码 代码如下: <?php $arr = array(345,4,17,6,52,16,58,69,32,8,234); $n = count($arr); for($i=1;$i<$n;$i++){ //其中的为什么$n-1是因为数组是从0开始计算的 //接下来是第一次内循环 for($j=$n-1;$j>=$i;$j--) { //如果$arr[10]<$arr[9]; //temp = $arr[9]; if($arr[$j]<$arr[$j-1]){ //$te

java hashtable实现代码_java

复制代码 代码如下: public class HashTable{   private String[] name;    //关键字   private int sum;    //容量   public static void main(String[] args){    //测试        HashTable ht = new HashTable();        ht.add("chenhaitao");        ht.add("zhongcheng&