温故而知新——数组排序算法
import java.util.Arrays;
/** * @author liuwang 插入和快速类似,希尔最快,可以讲比较互换的操作放在栈内存中提高效率,tips:创建的对象在堆内存中。 */public class SelectSort {
public static void main(String[] args) { int[] arr = { 1, 2, 3, 4, 9, 8, 7, 6, 5 }; //或者这样初始化:int[] arr =new int[]{ 1, 2, 3, 4, 9, 8, 7, 6, 5 };
System.out.print("自然顺序:"); for (int x = 0; x < arr.length; x++) { System.out.print(arr[x]); } System.out.println(); System.out.print("sort排序:"); Arrays.sort(arr); for (int j : arr) { System.out.print(j); } System.out.println(); System.out.print("选择排序:"); selectSort(arr); for (int i : arr) { System.out.print(i); } bubbleSort(arr); System.out.println(); System.out.print("冒泡排序:"); for (int i : arr) { System.out.print(i); } }
[img]http://dl.iteye.com/upload/attachment/591302/a9e32d71-a8d8-3f01-88e0-de23da1f1aa4.jpg[/img]
/** * 选择的思想:第一轮比较,是将第一元素和接下来的每一个比,按规则互换,比完了将最值放到第一个元素。 * * @param arr */ public static void selectSort(int[] arr) { for (int x = 0; x < arr.length - 1; x++) { for (int y = x + 1; y < arr.length; y++) { if (arr[x] > arr[y]) { int temp = arr[x]; arr[x] = arr[y]; arr[y] = temp; }
} }
}
[img]http://dl.iteye.com/upload/attachment/591300/3d5be40d-c8b2-3d96-8870-440059ce3c05.jpg[/img]
/** * 冒泡的思想:第一轮比较,都是从0角标开始,前一个元素和后一个元素比较,按照既定的规则,将最值移到最后。 * 最值是一步一步冒出来的。 * @param arr */ public static void 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; } } } }
}
/** * 插入法排序 */ public static void insert(int[] arr) { for (int x = 0; x < arr.length - 1; x++) { for (int y = x; y > 0 && arr[y] < arr[y - 1]; y--) { // 与所有之前的元素遍历一遍。 int temp = arr[y]; arr[y] = arr[y - 1]; arr[y - 1] = temp; } } }
温故而知新——数组排序算法相关推荐
- 二维数组 类型_Java第六章 | 二维数组的创建及使用、数组排序算法
二维数组的创建及使用 1.二维数组的创建 2.二维数组初始化 3.使用二维数组 二维数组的创建 声明二维数组的方法有两种,语法如下所示: 数组元素类型 数组名字[ ][ ]; 数组元素类型[ ][ ] ...
- C语言作业 – 数组排序算法可视化
这学期的线下C语言课程,大一同学们学完数组排序后,布置了一次数组排序算法可视化的作业,给了大家1天时间独立完成,通过可视化加深对排序算法的理解. 下面给出了四位同学的实现效果和代码,大家可以参考. 源 ...
- PHP二维数组排序算法函数
<?php // 二维数组排序算法函数,能够具有通用性,可以调用php内置函数. function array_sort(&$arr, $order = []){$result = [] ...
- python socket发送数组_利用pyprocessing初步探索数组排序算法可视化
[经过两次更新,功能基本完成]最终效果请直接下拉到最后一个视频观看 背景说明 这篇文章旨在初步探索利用pyprocessing的强大的可视化功能,以及pyprocessing和Ipython之间的本地 ...
- arraylist从大到小排序_程序猿面试宝典:你该知道的数组排序算法
通常情况下,我们对数组的操作远远不止遍历判断大小或者判断奇偶数这么简单.比如,当我们需要求一个数组中所有元素的平均值时,操作很简单,只需要去遍历这个数组,并将其内部所有元素中存储的内容进行求和,最后用 ...
- 基于SIMD和缓存友好的结构体数组排序算法(论文阅读笔记)
摘要 本文描述了一个通过高效利用SIMD指令和当今处理器缓存内存的,用于对一个数据结构进行排序的新算法.当前,通过SIMD指令实现的多路归并排序已经被作为一个对于int值排序的高效内存排序算法使用了. ...
- PHP面试题:写一个二维数组排序算法函数,能够具有通用性,可以调用php内置函数(array_multisort())
//二维数组排序, $arr是数据,$keys是排序的健值,$order是排序规则,1是升序,0是降序 function array_sort($arr, $keys, $order=0) {if ( ...
- c语言数组排序算法的实验总结,排序算法实验报告技术总结.doc
数据结构实验报告八种排序算法实验报告 实验内容编写关于八种排序算法的C语言程序,要求包含直接插入排序.希尔排序.简单选择排序.堆排序.冒泡排序.快速排序.归并排序和基数排序.实验步骤 各种内部排序算法 ...
- c语言大小排序算法,七种常见的数组排序算法整理(C语言版本)
---C语言版本--- 冒泡排序 选择排序 直接插入排序 二分插入排序 希尔排序 快速排序 堆排序 #define EXCHANGE(num1, num2) { num1 = num1 ^ num2; ...
最新文章
- Beaker:一个基于Electron的点对点Web浏览器
- binlog关闭事务记录_Mysql 数据库 InnoDB引擎对binlog_format的限制
- [简单题]Counting Duplicates( Python 实现)
- MyBatis无限输出日志
- Java接口有时有结果 有时没有_《Java程序员面试笔试宝典》之为什么Java中有些接口没有任何方法...
- apt-get更新软件包_如何使用Apt-fast加速软件包下载和更新
- delphi 调用php接口_爱站权重查询 API 接口请求调用
- 定时执行java程序_如何让Java程序定时运行
- No Need(AtCoder-2346)
- jupyter notebook OSError: [WinError 10049] 在其上下文中,该请求的地址无效。
- struts2 global-results
- c语言英文背单词软件下载,英语背单词软件
- ffmpeg wav 转 mp3 以及其他音频转换
- Photoshop插件-证件照-2寸裁剪-2寸排版-脚本开发-PS插件
- 嵌入式培训多少钱?嵌入式学习要了解这些内容!
- 建设网站:购买域名和主机的原则你知道吗?
- 工业机器人介绍及机器人学概述
- Dubbo注解方式与spring的整合原理即@DubboService的机制(2)
- 苹果处理器性能突破天际,安卓已望尘莫及
- 免费使用识别身份证信息、银行卡、驾驶证、行驶证、车牌、营业执照、网络图片文字等
热门文章
- GCAM | GCAM-v5.1.3 在 Windows10 上的编译
- 原生javaScript利用loaclStorage实现简单购物车
- 基金词汇的普及 - ETF和FOF
- 马列主义告诉我们:物质基础决定上层建筑 - 移动互联网时代之后的时代演进推断...
- ramdisk和linux PE,PE下建立Ramdisk盘的详细教程
- 联想台式主机拆机教程_联想一体机电脑该怎么拆机?
- 非因解读 | DSP空间全转录组+单细胞测序 描绘新冠患者多器官空间组织图谱
- java struts 介绍_Struts简介、原理及简单实现
- Visio2013中插入Mathtype公式的方法
- 【面试篇】ConcurrentHashMap1.8 扩容细节