java数组元素的排序_java学习之数组元素排序,冒泡排序和选择排序
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.2 冒泡排序优化 1.2.1 外循环优化 1.2.2 内循环优化 1.2.3 双向遍历 1.3 冒泡排序的稳定性.复杂度和适用场景 1.3 ...
- 十大经典排序算法(图解与代码)——冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序(Python and Java)
排序 重新排列表中的元素,使表中的元素按照关键字递增或者递减 内部排序: 指在排序期间,元素全部存放在内存中的排序 外部排序: 指在排序期间元素无法全部同时存放在内存中,必须在排序的过程中根据要求不断 ...
- 三种基本排序的实现及其效率对比:冒泡排序、选择排序和插入排序
1 public class ThreeTypesOfBaseSort { 2 // ========================== 三种基本排序的效率对比 ================== ...
- c语言排序需要插空的最小次数,C语言数组排序——冒泡排序、选择排序、插入排序...
一.冒泡排序 原理解析:(以从小到大排序为例)在一排数字中,将第一个与第二个比较大小,如果后面的数比前面的小,则交换他们的位置. 然后比较第二.第三个--直到比较第n-1个和第n个,此时,每一次比较都 ...
- java语言冒泡排序法_Java实现八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序等...
本文实现了八个常用的排序算法:插入排序.冒泡排序.选择排序.希尔排序 .快速排序.归并排序.堆排序和LST基数排序 首先是EightAlgorithms.java文件,代码如下: import jav ...
- java 排序 1和1_新手入门-冒泡排序和选择排序第一节排序1.1排序概述排序(
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 新手入门-冒泡排序和选择排序 第一节排序 1.1排序概述 排序(sorting)的功能是将一个数据元素的任意序列,重新排列成一个按关键字有序的序列.  ...
- 【Java数据结构与算法】第七章 冒泡排序、选择排序、插入排序和希尔排序
第七章 冒泡排序.选择排序.插入排序和希尔排序 文章目录 第七章 冒泡排序.选择排序.插入排序和希尔排序 一.冒泡排序 1.基本介绍 2.代码实现 二.选择排序 1.基本介绍 2.代码实现 三.插入排 ...
- 【Java】八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序 、快速排序、归并排序、堆排序和LST基数排序
这篇文章主要介绍了Java如何实现八个常用的排序算法:插入排序.冒泡排序.选择排序.希尔排序 .快速排序.归并排序.堆排序和LST基数排序,需要的朋友可以参考下 本文实现了八个常用的排序算法:插入排序 ...
- java排序算法(插入排序,冒泡排序,选择排序)
java排序算法(插入排序,冒泡排序,选择排序) 先了解原理,然后自己跟着敲一下,加深印象 CMD编译命令:javac -encoding utf-8 SortList.java && ...
最新文章
- C#中关键字ref和out
- 最好用的 IntelliJ 插件 Top 10
- 复习笔记--计算机网络
- Chrome安装metamask
- error Infos
- 武汉游记,三件新鲜奇葩事
- Jmeter在运行结果中文出现乱码问题
- Django,ajax实现表格增删查改,Django内置分页功能。
- java version 和javac版本不一致_解决linux下javac -version和java -version版本显示不一致...
- 下载不了java应用程序_Java 7u45 - java webstart不会下载我的jar并执行应用程序,除非我显示java控制台...
- GitLab 小组中的项目访问权限赋予给用户
- SQLSERVER对加密的存储过程、视图、触发器进行解密
- Windows 键盘快捷键概述
- Noip前的大抱佛脚----文章索引
- 13. GameProjec1_GameEngine
- Quartus II 的MegaWizard字体过小
- 防热服的设计数学建模_数学建模之高温作业专用服装设计.pdf
- widevine DRM 介绍
- QC4+充电协议_喜大普奔:高通推出QC3+/4+快充协议,这些处理器均支持
- Cocos2d-X 3.x的具体配置详解
热门文章
- YII 框架使用之——创建应用
- java中用单例模式有什么好处
- web服务器 linux+apache+tomcat+mysql+jsp+php 整合安装
- OpenCV-图像对比度
- html显示数据库的数据类型,将HTML插入mysql数据库,显示E类型
- linux 集成调试工具,linux下can调试工具canutils安装过程记录
- 百度地图java批量获得经纬度_从百度地图API接口批量获取地点的经纬度
- java class教程_深入理解Java Class文件格式(七)
- 剑指offer面试题[22]-栈的压入、弹出序列
- 软件测试职业发展-王学丹