Java基础——选择排序、冒泡排序
1.选择排序
原理是直接从待排序数组里选择一个最小(或最大)的数字,每次都拿一个最小数字出来,
顺序放入新数组,直到全部拿完
代码演示:
public class Test3 {
public static void main(String[] args) {
int[] arr = { 3, 9, 81, 8, 5, 10 };
selectSort(arr);
print(arr);
}
/* 选择排序:原理是第i个元素和剩余元素的比较次数 */
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;
}
}
}
}
/* 排序后打印函数 */
public static void print(int[] arr) {
System.out.print("{");
for (int i = 0; i < arr.length; i++) {
if (i < arr.length - 1)
System.out.print(arr[i] + ",");
else
System.out.print(arr[i]);
}
System.out.print("}");
}
}
第10行的for循环控制的是总的比较次数,第11行for循环控制的是第i个数(最小值或最大值)和剩余的比较次数
2.冒泡排序
原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,
这样一趟过去后,最大或最小的数字被交换到了最后一位,
然后再从头开始进行两两比较交换,直到倒数第二位时结束
代码示例:
public class Test4 {
public static void main(String[] args) {
int[] arr = { 3, 9, 81, 8, 5, 10 };
bubbleSort(arr);
print(arr);
}
public static void bubbleSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
for (int j = i; j < arr.length; j++) {
if (arr[i] > arr[j]) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
/* 排序后打印函数 */
public static void print(int[] arr) {
System.out.print("{");
for (int i = 0; i < arr.length; i++) {
if (i < arr.length - 1)
System.out.print(arr[i] + ",");
else
System.out.print(arr[i]);
}
System.out.print("}");
}
}
Java基础——选择排序、冒泡排序的更多相关文章
- [Java]数组排序-选择排序 冒泡排序 插入排序
1 选择排序 原理:a 将数组中的每个元素,与第一个元素比较 如果这个元素小于第一个元素, 就将这个 两个元素交换. b 每轮使用a的规则, 可以选择出 ...
- Java ——数组 选择排序 冒泡排序
本节重点思维导图 数组 public static void main(String[] args) { int a ; a=3; int[] b; b = new int[3];//强制开辟内存空间 ...
- Java基础--选择排序
每一趟从待排序的数据元素中选出最小(或最大的)一个元素, 顺序放在已排好的序的数列的最后,直到全部待排序的数据元素排完. 选择排序是不稳定的排序方法. 选择排序的时间复杂度为 O(n^2). 第一次需 ...
- Java基础——选择语句
Java基础--选择语句 1. if语句 规律: 1. 首先计算表达式的值. 2. 若表达式为真,则执行对应语句,为假则不执行. 第一种: if(表达式) 语句;//多个语句可用{} 例如 ...
- 《Java基础——选择语句》
Java基础--选择语句 1. if语句; 规则: 1. 首先计算表达式的值. 2. 若表达式为真,则执行对应语句,为假则不执行. 格式一: if(表达式) 语句;//多个语句可用{} ...
- Java中选择排序,冒泡排序,插入排序,快速排序
一:冒泡法排序 //冒泡排序 注:从小到大排 //特点:效率低,实现简单 //思想:每一趟将待排序序列中最大元素移到最后,剩下的为新的待排序序列,重复上述步骤直到排完所有元素. 这只是冒泡排序 ...
- 2017.12.9 Java中的排序---冒泡排序、快速排序、选择排序
//冒泡排序 public class demo{ public static void main(String[] args) { int[] sum={2,9,10,1,5,88}; System ...
- JAVA实现选择排序,插入排序,冒泡排序,以及两个有序数组的合并
一直到大四才开始写自己的第一篇博客,说来实在有点羞愧.今天写了关于排序的算法题,有插入排序,冒泡排序,选择排序,以下贴上用JAVA实现的代码: public class test5 { public ...
- Java实现选择排序以及冒泡排序
//排序 选择排序 数组中每个元素都进行比较 public class Test { public static void main(String[] args) { int[] arr = {12, ...
随机推荐
- asp、asp.net、ado、ado.net各自区别和联系?
asp.net与ado.net 的区别? asp.net是微软公司的.Net技术框架下的B/S(网页方向)框架技术.ado.net则是由asp.net编程语言编写的数据访问层的总括..说白了就是:as ...
- vs2012编译boost_1_54_0
在原文上进行了修改,我的环境是VS2012 ,在编译 注意事项:Boost 请慎用!微软太坑爹...且直接使用GitHub上的exe文件也可以,特定版本的只能自己编译了....汗!!! 原文地址:ht ...
- PhotoZoom Classic 7中的新功能
众所周知PhotoZoom Classic是家庭使用理想的放大图像软件.目前很多用户还在使用PhotoZoom Classic 6,对于PhotoZoom Classic 7还是有点陌生.其实在6代衍 ...
- 面试题-mysql
Sql :UPDATE test SET sex = CASE sex WHEN 'm' THEN 'f' ELSE 'm' END;
- VS2013 opencv 无法删除“继承的值”问题解决方案
http://www.360doc.com/content/15/0103/14/110467_437739376.shtml 解决方案: (1)视图——其他窗口——属性管理器. 注意:是”属性管理器 ...
- jquery为元素绑定事件
语法 $(selector).live(event,data,function) 参数event 必需,规定附加到元素的一个或多个事件.由空格分隔多个事件,必须是有效的事件.data 可选,规定传递到 ...
- JavaScript进阶【五】利用JavaScript实现动画的基本思路
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 【Codeforces Round #505 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final) C】
[链接] 我是链接,点我呀:) [题意] 给你一个字符串s. 让你在其中的某一些位置进行操作.. 把[1..i]和[i+1..n]翻转. 使得里面01交替出现的那种子串的长度最长. [题解] 可以用a ...
- Maven Hibernate
1.使用maven管理Hibernate实现自动装配jar包 2.需要在配置文件pom.xml中引入 如:引入hibaernate5.2.11.Final版本的jar包,需要做如下配置: <!- ...
- FreeMarker hello
一.什么是 FreeMarker FreeMarker 是一个用 Java 语言编写的模板引擎,它基于模板来生成文本输出.FreeMarker 与 Web 容器无关,即在 Web 运行时,它并不知道 ...