Java - 冒泡排序的优化算法(尚学堂第七章数组)

import java.util.Arrays;

public class TestBubbleSort2 {
    public static void main(String[] args) {
        int[] values = { 3, 1, 6, 2, 9, 0, 7, 4, 5, 8 };
        int temp = 0;
        for(int i=0;i<values.length-1;i++) {

            boolean flag = true;
            for(int j=0;j<values.length-1-i;j++) {

                if(values[j] > values[j+1]) {
                    temp = values[j];
                    values[j] = values[j+1];
                    values[j+1] = temp;

                    flag = false;
                }
            System.out.println(Arrays.toString(values));
            }
            if(flag) {
                break;
            }
            System.out.println("#####################");
        }

    }
}

原文地址:https://www.cnblogs.com/kl-1998/p/10716171.html

时间: 2024-10-01 00:38:08

Java - 冒泡排序的优化算法(尚学堂第七章数组)的相关文章

Java - 冒泡排序的基础算法(尚学堂第七章数组)

/** * 冒泡排序的基础算法 */ import java.util.Arrays; public class TestBubbleSort1 { public static void main(String[] args) { int[] values = { 3, 1, 6, 2, 9, 0, 7, 4, 5, 8 }; int temp = 0; /* 2.调用内循环length-1次,数字逐渐实现从左到右依次向后排, * 每执行n次内循环就出现n个排好的数值,故内循环可少执行i次, 所

Java - 二分法查找(尚学堂第七章数组)

import java.util.Arrays; public class TestBinarySearch { public static void main(String[] args) { int[] arr = { 30,20,50,10,80,9,7,12,100,40,8}; Arrays.sort(arr);//排序 System.out.println(Arrays.toString(arr)); System.out.println(myBinarySearch(arr,10)

java冒泡排序Bubble Sort算法代码

java冒泡排序Bubble Sort算法代码 下载代码地址:http://www.zuidaima.com/share/1550463269096448.htm package com.zuidaima.util; /** *冒泡排序 *@paramsrc待排序数组 *@author www.zuidaima.com */ void doBubbleSort(int[] src) { int len=src.length; for(int i=0;i<len;i++) { for(int j=

java冒泡排序及优化

java冒泡排序及优化 import java.util.Arrays; public class TestBubbleSort3 { public static void main(String[] args) { int[] a = {23,45,2,86,56,34,234,54,342}; getBubbleSortResult(a); } public static void getBubbleSortResult(int[] a) { for(int j =0;j<a.length-

《JAVA编程思想》学习笔记——第十六章 数组

数组和其它种类的容器之间的区别有三方面:效率,类型和保存基本类型的能力.在Java中,数组是一种效率最高的存储和随机访问对象引用序列的方式.数组就是一个简单的线性序列,这使得元素访问非常快速.但是为这种速度所付出的代价是数组对象的大小被固定,并且在其生命周期中不可改变. 数组强调的是性能而不是灵活性 对象数组和基本类型数组在使用上几乎是相同的; 唯一的区别就是对象数组保存的是引用,基本类型数组直接保存基本类型的值. Arrays实用功能 System.arraycopy():复制数组 equal

算法入门经典-第七章 例题7-4-1 拓展 n皇后问题 回溯法

实际上回溯法有暴力破解的意思在里面,解决一个问题,一路走到底,路无法通,返回寻找另   一条路. 回溯法可以解决很多的问题,如:N皇后问题和迷宫问题. 一.概念 回溯算法实际类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现不满足条件的时候,就回溯返回,尝试别的路径. 百度解释:回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标.但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯

算法入门经典-第七章 例题7-2-2 可重集的排列

可重:如果问题变成输入数组p,并按字典序输出数组A个元素的所有全排列,则需要修改代码集的全排列 // Rujia Liu #include<cstdio> #include<algorithm> using namespace std; int P[100], A[100]; // 输出数组P中元素的全排列.数组P中可能有重复元素 void print_permutation(int n, int* P, int* A, int cur) { if(cur == n) { for(

【算法导论】第七章、快速排序

快排的优势: 1.期望为O(n lgn) 2.常数因子比较小 3.就地排序 4.在虚存环境很好工作 与合并排序一样是分治思想,但是不是从中间截断,而是通过partition过程实现的 每次选择最后一个元素为q,然后小的放前面,大的放后面,用ij两个坐标实现 代码:待补充

算法入门经典-第七章 例题7-2 八皇后问题

原本利用回溯思想解决的经典八皇后问题,其实也是可以用递归解决的~ 八皇后的递归解决思路: 从第一行开始,依次判断0~8列的哪一列可以放置Queen,这样就确定了该行的Queen的位置,然后行数递增,继而递归实现下一行的判断,依次类推直到行数增加到8(行数从0开始的),此时为递归-----归的条件,即表示一种八皇后的解决方法完成,打印结果:之后进行下一种解决方法的寻找,大致思路个人理解是这样 noDanger(row,j,(*chess)[8])函数是判断第row行第j列是否可以放置Queen #