[javaSE] 数组(排序-冒泡排序)
两层嵌套循环,外层控制循环次数,内层循环进行比较
for(int x=0;x<arr.length-1;x++){
            for(int y=0;y<arr.length;y++){
                if(arr[y]>arr[y+1]){
                }
            }
        }
此时的代码有问题,内层循环多比较了已经排好序的部分,都在最后面,需要去掉
        for(int x=0;x<arr.length-1;x++){
            for(int y=0;y<arr.length-x;y++){
                if(arr[y]>arr[y+1]){
                }
            }
        }
此时的代码有问题,内层循环最后一个元素,无法和它后面的比较,应该去掉
        for(int x=0;x<arr.length-1;x++){
            for(int y=0;y<arr.length-x-1;y++){
                if(arr[y]>arr[y+1]){
                }
            }
        }
判断完后,两个变量交换位置,利用第三方变量
        for(int x=0;x<arr.length-1;x++){
            for(int y=0;y<arr.length-x-1;y++){
                if(arr[y]>arr[y+1]){
                    int temp=arr[y];
                    arr[y]=arr[y+1];
                    arr[y+1]=temp;
                }
            }
        }
java版:
public class ArrayDemo {
    /**
     * @param args
     */
    public static void main(String[] args) {
        int[] arr=new int[]{2,5,4,1};
        int[] newArr=bubbleSort(arr);
        for(int x:newArr){
            System.out.print(x);
        }
    }
    /**
     * 冒泡排序(正序)
     * @param arr
     * @return
     */
    public static int[] bubbleSort(int[] arr){
        for(int x=0;x<arr.length-1;x++){
            for(int y=0;y<arr.length-x-1;y++){
                if(arr[y]>arr[y+1]){
                    int temp=arr[y];
                    arr[y]=arr[y+1];
                    arr[y+1]=temp;
                }
            }
        }
        return arr;
    }
}
PHP版:
<?php
class ArrayDemo{
public static function main(){
$arr=array(2,5,4,1);
print_r(ArrayDemo::bubbleSort($arr));//输出 Array ( [0] => 1 [1] => 2 [2] => 4 [3] => 5 )
} /**
* 冒泡排序(正序)
* @param arr
* @return
*/
public static function bubbleSort($arr){
for($x=0;$x<count($arr)-1;$x++){
for($y=0;$y<count($arr)-$x-1;$y++){
if($arr[$y]>$arr[$y+1]){
$temp=$arr[$y];
$arr[$y]=$arr[$y+1];
$arr[$y+1]=$temp;
}
}
}
return $arr;
} } ArrayDemo::main();
选择排序和冒泡排序性能都很低,提高性能的方法,当需要换位置的时候,先不换,先把需要换位置的角标放到栈内存中,等最后一次性在堆内存中交换
排序中最快的是 希尔排序
[javaSE] 数组(排序-冒泡排序)的更多相关文章
- 011--c数组--排序--组成最大数
		
数组--排序--组成最大数 组成最大数 任意输入一个自然数,输出该自然数的各位数字组成的最大数.例如,输入 1593 ,则输出为 9531 . 输入: 自然数 n 输出: 各位数字组成的最大数 ...
 - Linux C++ 直接选择排序,冒泡排序,快速排序
		
选择排序的思想是:每次从待排序中选择最小(大)的元素插入已经排好的序列中. /*直接选择排序*/ #include <iostream> using namespace std; void ...
 - 060 01 Android 零基础入门  01 Java基础语法 06 Java一维数组 07 冒泡排序
		
060 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 07 冒泡排序 本文知识点:冒泡排序 冒泡排序 实际案例分析冒泡排序流程 第1轮比较: 第1轮比较的结果:把最 ...
 - 【数组】—冒泡排序&&选择排序---【巷子】
		
/* 什么是冒泡排序:从头到尾比较相邻的两个数的大小,如果符合条件则进行比较 [注]:从小到大进行排序 假设有一个数组 var arr = [9,8,7,6,5,4]; 我们想要进行这个数组进行排序那 ...
 - Java ——数组 选择排序 冒泡排序
		
本节重点思维导图 数组 public static void main(String[] args) { int a ; a=3; int[] b; b = new int[3];//强制开辟内存空间 ...
 - [javaSE] 数组(排序-选择排序)
		
两层嵌套循环,外层循环控制次数,内层循环进行比较 for(int x=0;x<arr.length;x++){ for(int y=0;y<arr.length;y++){ if(arr[ ...
 - JAVA排序--[冒泡排序]
		
package com.array; public class Sort_MaoPao { /** * 项目名称:冒泡排序 * 项目要求:用JAVA对数组进行排序,并运用冒泡排序算法 * 作者:Sev ...
 - c#部分---一维数组、冒泡排序、foreach的用法
		
一维数组:2016-10-14 定义方式:{定义的时候,需要数据类型.长度!} 1.int []aa=new int [5]; 表示数组里面有5个字符: 2.int []aa=new int []{ ...
 - Python学习笔记——基础篇【第五周】——算法(4*4的2维数组和冒泡排序)、时间复杂度
		
目录 1.算法基础 2.冒泡排序 3.时间复杂度 (1)时间频度 (2)时间复杂度 4.指数时间 5.常数时间 6.对数时间 7.线性时间 1.算法基础 要求:生成一个4*4的2维数组并将其顺时针旋 ...
 
随机推荐
- 《JavaScript高级程序设计》3.7 函数
			
位于return语句之后的代码不会执行; return语句也可以不带有任何返回值. 这种情况下, 函数在停止执行后会返回undefined值. 这种用法一般用在需要提前停止函数执行而又不需要返回值的情 ...
 - 网易云 MySQL实例迁移的技术实现
			
本文由 网易云 发布. 我们把数据库里部分或全部 Schema和数据迁移到另一个实例的行为称为实例迁移,将导出数据的实例称为源实例,导入数据的实例称为目标实例. 根据迁移数据库类型的不同,可以分为同 ...
 - Python 将字典的元素按照键或者值的大小进行排序
			
在开发的过程中有时遇到这样的需求,一个字典里保存了一份完整的数据,其中键是一个id,值是时间,需要获取最新的5条数据,处理方式如下: 假设字典数据的变量名为my_dict data_list = so ...
 - OC 中的属性
			
自动合成 (autosynthesis) @property 语法,会做下面两件事情 自动生成存取方法 由编译器生成,编辑器里不会看到这些方法. 向类中添加适当类型的实例变量 在属性前加下划线,作为实 ...
 - easyui toopTip,鼠标划过悬浮,显示一个小提示框的方法
			
easyui toopTip,鼠标划过悬浮,显示一个小提示框的方法 /*easyui,鼠标划过悬浮,显示一个小提示框的方法*/ function toopTip(idOrClass,showText) ...
 - Matlab 编程
			
M文件 1. 脚本文件 Script is a file containing a series of commands Scripts need to be saved to a <file& ...
 - [摘]HttpContext, HttpRequest, HttpResponse, HttpRuntime, HttpServerUtility
			
[摘]http://www.cnblogs.com/fish-li/archive/2011/08/21/2148640.html HttpRuntime HttpRuntime公开了一个静态方法 U ...
 - Java之集合(二十七)其它集合
			
转载请注明源出处:http://www.cnblogs.com/lighten/p/7551368.html 1.前言 本章介绍剩余的3个集合类:ConcurrentSkipListSet.CopyO ...
 - php输出大段代码(含变量和方法)
			
echo<<<EOF <html> <body> <formname="MainForm"method="post&quo ...
 - php生成markdown格式的数据库字典
			
<?php /** * 生成mysql数据字典 */ //数据库配置 $config = [ 'host' => '192.168.43.134', 'user' => 'root' ...