简单的冒泡排序算法(java)

package lianxi;

public class BubbleSort
{
    public static void main(String[] args)
    {
        int[] array = {12,23,3,5,65,67,34,23,5,7,789,435,2,4};

        //对数组冒泡排序
        for(int i = 0;i < array.length - 1; i ++)
        {
            for(int j = 0;j < array.length - i - 1; j ++)
            {
                if (array[j] > array[j + 1])
                {
                    array[j] = array[j] + array[j + 1];
                    array[j + 1] = array[j] - array[j + 1];
                    array[j] = array[j] - array[j + 1];
                }
            }
            //对每趟排序结果打印
            System.out.println("第"+ i+ "趟排序结果");
            for(int k = 0; k < array.length; k ++)
            {
                System.out.print(array[k] + " ");
            }
            System.out.println();
        }
    }
}
时间: 2024-08-28 23:40:54

简单的冒泡排序算法(java)的相关文章

双向冒泡排序算法--java

以整数升序排序为例来简单说明一下双向冒泡排序的过程:首先从前往后把最大数移到最后,然后反过来从后往前把最小的一个数移动到数组最前面,这一过程就是第一轮,然后重复这一过程,最终就会把整个数组从小到大排列好.双向冒泡排序要稍微优于传统的冒泡排序,因为双向排序时数组的两头都排序好了,我们只需要处理数组的中间部分即可,而单向即传统的冒泡排序只有尾部的元素是排好序的,这时每轮处理都需要从头一直处理到已经排好序元素的前面一个元素.虽然它在效率上有了点改进,但它也不能大幅度提高其排序的效率,这是由冒泡排序的基

Java版双向冒泡排序算法

冒泡排序算法是一种较为简单的并且稳定的排序算法,该算法的时间复杂度最好为O(n),最差时为O(n^2),需要的空间复杂度为O(1). 这里的算法稳定性是指 经过排序后,各元素仍然能保持它们在排序之前的相对次序,就称该算法是稳定的,反之,则为不稳定的. 例如,一组数排序前是a1,a2,a3,a4,a5,其中a2=a4,经过某种排序后a1,a2,a4,a3,a5,则说明这种排序是稳定的,因为a2排序前后都在a4前面:若排序的结果是a1,a4,a2,a3,a5,则该排序就不是稳定的了.------摘自

RSA算法Java的简单实现

RSA简介 RSA算法据说是目前地球上最重要的加密算法.维基百科是这么介绍的:"对极大整数做因数分解的难度决定了RSA算法的可靠性.换言之,对一极大整数做因数分解愈困难,RSA算法愈可靠.假如有人找到一种快速因数分解的算法,那么RSA的可靠性就会极度下降.但找到这样的算法的可能性是非常小的.今天只有短的RSA密钥才可能被暴力破解.到2008年为止,世界上还没有任何可靠的攻击RSA算法的方式.只要密钥长度足够长,用RSA加密的信息实际上是不能被解破的." 看上去很神奇是吧,其实在学习网络

算法——&gt;简单的冒泡排序

算法中需要掌握的简单的冒泡排序   话不多说 我们看如下: /** * 把一个 混乱的数组 int arr[] = {2,2323,23,456,1,342}; * 按照有序排列 也就是我们常说的冒牌排序 * 还是按照我们以前所说的 当我们遇到问题时,我们把问题肢解. * 1.首先我们想把一个混乱的数组排列成有序的,我们应该先找出最大的(或者最小的) * 2.然后我们依次按照次方法进行循环 就可以排列出想要的顺序了,思路都有了,实现吧! * @author Administrator * */

排序系列 之 简单选择排序及其改进算法 —— Java实现

简单选择排序算法: 基本思想: 在待排序数据中,选出最小的一个数与第一个位置的数交换:然后在剩下的数中选出最小的数与第二个数交换:依次类推,直至循环到只剩下两个数进行比较为止. 实例: 0.初始状态 3,1,5,7,2,4,9,6(共8个数) 1.n=8 个数中,最小数值为1,与第一个数交换:1,3,5,7,2,4,9,6 2.剩下 n-1=7 个数中,最小数值为2,与第二个数交换:1,2,5,7,3,4,9,6 3.剩下 n-2=6 个数中,最小数值为3,与第三个数交换:1,2,3,7,5,4

java:快速排序算法与冒泡排序算法

 Java:快速排序算法与冒泡算法 首先看下,冒泡排序算法与快速排序算法的效率: 如下的是main方法: public static void main(String[] args) { //快速排序算法测试 int[] qArray = new int[100000]; for (int i = 0; i < 100000; i++){ qArray[i] = (int) (Math.random() * 100000); } long beforeQ = System.currentTi

冒泡排序算法和简单选择排序算法的js实现

之前已经介绍过冒泡排序算法和简单选择排序算法和原理,现在有Js实现. 冒泡排序算法 let dat=[5, 8, 10, 3, 2, 18, 17, 9]; function bubbleSort(data) { for(let i=0;i<data.length-1;i++){ for(let j=0;j<data.length-1-i;j++){ if(data[j]>data[j+1]){ [data[j],data[j+1]]=[data[j+1],data[j]]; } } }

Java中数组的几个常用算法:插入算法,删除算法,冒泡排序算法

前言: 在Java中我们常常会用数组,提到数组就不得不介绍数组中常用到的几个算法. 有插入算法,删除算法,冒泡排序算法等. 在学习这几个数组的算法前,我们先来了解一下关于数组一些基本知识. 数组的基本知识: 数组的定义:数组(Array)是相同数据类型的数据的有序集合. 数组是引用数据类型. 数组的三个特点: [1]数组长度是确定.数组一旦申请完空间,长度不能发生变化,用length属性访问. [2]数组的元素都是同一数据类型. [3]数组是有序的 .每个元素通过下标/索引标记,索引从0开始.

java实现冒泡排序算法

冒泡排序算法原理: 比较相邻的元素.如果第一个比第二个大,就交换他们两个, 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对, 针对所有的元素重复以上的步骤,除了最后一个, 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较, 创建方法: 1 //排序方法 2 public void bubble(int[] arr){ 3 //n个数需要n-1趟排序 4 for(int i=0;i<arr.length-1;i++){ 5 //每趟排序比较的次数,减去已经排序过得元