java学习之数组元素排序

选择排序

*返回值类型 void

*参数列表 int[] arr

* 分析:选择排序

* 第一次arr[0]与arr[1-4]比较,总共比较4次

* 第二次arr[1]与arr[2-4]比较,总共比较3次

* 第三次arr[2]与arr[3-4]比较,总共比较2次

* 第四次arr[3]与arr[4]比较,总共比较1次

冒泡排序

返回值类型void

* 参数列表 int[] arr

* 分析:冒泡排序

* 第一次比较arr[0]和arr[1],arr[1]和arr[2],arr[2]和arr[3],arr[3]和arr[4]比较了4次

* 第二次比较arr[0]和arr[1],arr[1]和arr[2],arr[2]和arr[3]比较了3次

* 第三次比较arr[0]和arr[1],arr[1]和arr[2]比较了2次

* 第四次比较arr[0]和arr[1]比较了1次

package com.ifenx8.study.array;

public class Demo_BubbleSort {

/**

需求:

数组元素:{24, 69, 80, 57, 13}

请对数组元素进行排序。

*/

public static void main(String[] args) {

int[] arr = {24, 69, 80, 57, 13};

//bubbleSort(arr);//冒泡排序

selectSort(arr);//选择排序

print(arr);

}

/*

*返回值类型 void

*参数列表 int[] arr

*

* 分析:选择排序

* 第一次arr[0]与arr[1-4]比较,总共比较4次

* 第二次arr[1]与arr[2-4]比较,总共比较3次

* 第三次arr[2]与arr[3-4]比较,总共比较2次

* 第四次arr[3]与arr[4]比较,总共比较1次

*

*/

public static void selectSort(int[] arr) {

for (int i = 0; i < arr.length -1; i++) {

for (int j = i + 1; j < arr.length; j++) { if(arr[i] > arr[j]){

/*int temp = arr[i];

arr[i] = arr[j];

arr[j] = temp;*/

swap(arr, i , j);

}

}

}

}

/**冒泡排序

* 返回值类型void

* 参数列表 int[] arr

* 分析:

* 第一次比较arr[0]和arr[1],arr[1]和arr[2],arr[2]和arr[3],arr[3]和arr[4]比较了4次

* 第二次比较arr[0]和arr[1],arr[1]和arr[2],arr[2]和arr[3]比较了3次

* 第三次比较arr[0]和arr[1],arr[1]和arr[2]比较了2次

* 第四次比较arr[0]和arr[1]比较了1次

*

*/

public static void bubbleSort(int[] arr) {

for (int i = 0; i < arr.length - 1; i++) {//外部循环比较的是第几次

for (int j = 0; j < arr.length - 1 -i; j++) {//内部循环比较了几次 if(arr[j] > arr[j + 1]){

/*int temp = arr[j];

arr[j] = arr[j + 1];

arr[j + 1] = temp;*/

swap(arr , j , j + 1 );

}

}

}

}

/*

*打印数组

*/

public static void print (int[] arr){

for (int i = 0; i < arr.length; i++) {

System.out.print(arr[i] + " ");

}

}

/*

* 把两个排序中共同的部分抽取成一个方法

* int temp = arr[i];

arr[i] = arr[j];

arr[j] = temp;

代码更简洁

*/

private static void swap(int[] arr, int i ,int j) {

int temp = arr[i];

arr[i] = arr[j];

arr[j] = temp;

}

}

java数组元素的排序_java学习之数组元素排序,冒泡排序和选择排序相关推荐

  1. 十大排序算法详解(一)冒泡排序、选择排序、插入排序、快速排序、希尔排序

    文章目录 一.冒泡排序 1.1 冒泡排序基础[必会知识] 1.2 冒泡排序优化 1.2.1 外循环优化 1.2.2 内循环优化 1.2.3 双向遍历 1.3 冒泡排序的稳定性.复杂度和适用场景 1.3 ...

  2. 十大经典排序算法(图解与代码)——冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序(Python and Java)

    排序 重新排列表中的元素,使表中的元素按照关键字递增或者递减 内部排序: 指在排序期间,元素全部存放在内存中的排序 外部排序: 指在排序期间元素无法全部同时存放在内存中,必须在排序的过程中根据要求不断 ...

  3. 三种基本排序的实现及其效率对比:冒泡排序、选择排序和插入排序

    1 public class ThreeTypesOfBaseSort { 2 // ========================== 三种基本排序的效率对比 ================== ...

  4. c语言排序需要插空的最小次数,C语言数组排序——冒泡排序、选择排序、插入排序...

    一.冒泡排序 原理解析:(以从小到大排序为例)在一排数字中,将第一个与第二个比较大小,如果后面的数比前面的小,则交换他们的位置. 然后比较第二.第三个--直到比较第n-1个和第n个,此时,每一次比较都 ...

  5. java语言冒泡排序法_Java实现八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序等...

    本文实现了八个常用的排序算法:插入排序.冒泡排序.选择排序.希尔排序 .快速排序.归并排序.堆排序和LST基数排序 首先是EightAlgorithms.java文件,代码如下: import jav ...

  6. java 排序 1和1_新手入门-冒泡排序和选择排序第一节排序1.1排序概述排序(

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 新手入门-冒泡排序和选择排序 第一节排序 1.1排序概述 排序(sorting)的功能是将一个数据元素的任意序列,重新排列成一个按关键字有序的序列.  ...

  7. 【Java数据结构与算法】第七章 冒泡排序、选择排序、插入排序和希尔排序

    第七章 冒泡排序.选择排序.插入排序和希尔排序 文章目录 第七章 冒泡排序.选择排序.插入排序和希尔排序 一.冒泡排序 1.基本介绍 2.代码实现 二.选择排序 1.基本介绍 2.代码实现 三.插入排 ...

  8. 【Java】八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序 、快速排序、归并排序、堆排序和LST基数排序

    这篇文章主要介绍了Java如何实现八个常用的排序算法:插入排序.冒泡排序.选择排序.希尔排序 .快速排序.归并排序.堆排序和LST基数排序,需要的朋友可以参考下 本文实现了八个常用的排序算法:插入排序 ...

  9. java排序算法(插入排序,冒泡排序,选择排序)

    java排序算法(插入排序,冒泡排序,选择排序) 先了解原理,然后自己跟着敲一下,加深印象 CMD编译命令:javac -encoding utf-8 SortList.java && ...

最新文章

  1. C#中关键字ref和out
  2. 最好用的 IntelliJ 插件 Top 10
  3. 复习笔记--计算机网络
  4. Chrome安装metamask
  5. error Infos
  6. 武汉游记,三件新鲜奇葩事
  7. Jmeter在运行结果中文出现乱码问题
  8. Django,ajax实现表格增删查改,Django内置分页功能。
  9. java version 和javac版本不一致_解决linux下javac -version和java -version版本显示不一致...
  10. 下载不了java应用程序_Java 7u45 - java webstart不会下载我的jar并执行应用程序,除非我显示java控制台...
  11. GitLab 小组中的项目访问权限赋予给用户
  12. SQLSERVER对加密的存储过程、视图、触发器进行解密
  13. Windows 键盘快捷键概述
  14. Noip前的大抱佛脚----文章索引
  15. 13. GameProjec1_GameEngine
  16. Quartus II 的MegaWizard字体过小
  17. 防热服的设计数学建模_数学建模之高温作业专用服装设计.pdf
  18. widevine DRM 介绍
  19. QC4+充电协议_喜大普奔:高通推出QC3+/4+快充协议,这些处理器均支持
  20. Cocos2d-X 3.x的具体配置详解

热门文章

  1. YII 框架使用之——创建应用
  2. java中用单例模式有什么好处
  3. web服务器 linux+apache+tomcat+mysql+jsp+php 整合安装
  4. OpenCV-图像对比度
  5. html显示数据库的数据类型,将HTML插入mysql数据库,显示E类型
  6. linux 集成调试工具,linux下can调试工具canutils安装过程记录
  7. 百度地图java批量获得经纬度_从百度地图API接口批量获取地点的经纬度
  8. java class教程_深入理解Java Class文件格式(七)
  9. 剑指offer面试题[22]-栈的压入、弹出序列
  10. 软件测试职业发展-王学丹