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;           }     } }

温故而知新——数组排序算法相关推荐

  1. 二维数组 类型_Java第六章 | 二维数组的创建及使用、数组排序算法

    二维数组的创建及使用 1.二维数组的创建 2.二维数组初始化 3.使用二维数组 二维数组的创建 声明二维数组的方法有两种,语法如下所示: 数组元素类型 数组名字[ ][ ]; 数组元素类型[ ][ ] ...

  2. C语言作业 – 数组排序算法可视化

    这学期的线下C语言课程,大一同学们学完数组排序后,布置了一次数组排序算法可视化的作业,给了大家1天时间独立完成,通过可视化加深对排序算法的理解. 下面给出了四位同学的实现效果和代码,大家可以参考. 源 ...

  3. PHP二维数组排序算法函数

    <?php // 二维数组排序算法函数,能够具有通用性,可以调用php内置函数. function array_sort(&$arr, $order = []){$result = [] ...

  4. python socket发送数组_利用pyprocessing初步探索数组排序算法可视化

    [经过两次更新,功能基本完成]最终效果请直接下拉到最后一个视频观看 背景说明 这篇文章旨在初步探索利用pyprocessing的强大的可视化功能,以及pyprocessing和Ipython之间的本地 ...

  5. arraylist从大到小排序_程序猿面试宝典:你该知道的数组排序算法

    通常情况下,我们对数组的操作远远不止遍历判断大小或者判断奇偶数这么简单.比如,当我们需要求一个数组中所有元素的平均值时,操作很简单,只需要去遍历这个数组,并将其内部所有元素中存储的内容进行求和,最后用 ...

  6. 基于SIMD和缓存友好的结构体数组排序算法(论文阅读笔记)

    摘要 本文描述了一个通过高效利用SIMD指令和当今处理器缓存内存的,用于对一个数据结构进行排序的新算法.当前,通过SIMD指令实现的多路归并排序已经被作为一个对于int值排序的高效内存排序算法使用了. ...

  7. PHP面试题:写一个二维数组排序算法函数,能够具有通用性,可以调用php内置函数(array_multisort())

    //二维数组排序, $arr是数据,$keys是排序的健值,$order是排序规则,1是升序,0是降序 function array_sort($arr, $keys, $order=0) {if ( ...

  8. c语言数组排序算法的实验总结,排序算法实验报告技术总结.doc

    数据结构实验报告八种排序算法实验报告 实验内容编写关于八种排序算法的C语言程序,要求包含直接插入排序.希尔排序.简单选择排序.堆排序.冒泡排序.快速排序.归并排序和基数排序.实验步骤 各种内部排序算法 ...

  9. c语言大小排序算法,七种常见的数组排序算法整理(C语言版本)

    ---C语言版本--- 冒泡排序 选择排序 直接插入排序 二分插入排序 希尔排序 快速排序 堆排序 #define EXCHANGE(num1, num2) { num1 = num1 ^ num2; ...

最新文章

  1. Beaker:一个基于Electron的点对点Web浏览器
  2. binlog关闭事务记录_Mysql 数据库 InnoDB引擎对binlog_format的限制
  3. [简单题]Counting Duplicates( Python 实现)
  4. MyBatis无限输出日志
  5. Java接口有时有结果 有时没有_《Java程序员面试笔试宝典》之为什么Java中有些接口没有任何方法...
  6. apt-get更新软件包_如何使用Apt-fast加速软件包下载和更新
  7. delphi 调用php接口_爱站权重查询 API 接口请求调用
  8. 定时执行java程序_如何让Java程序定时运行
  9. No Need(AtCoder-2346)
  10. jupyter notebook OSError: [WinError 10049] 在其上下文中,该请求的地址无效。
  11. struts2 global-results
  12. c语言英文背单词软件下载,英语背单词软件
  13. ffmpeg wav 转 mp3 以及其他音频转换
  14. Photoshop插件-证件照-2寸裁剪-2寸排版-脚本开发-PS插件
  15. 嵌入式培训多少钱?嵌入式学习要了解这些内容!
  16. 建设网站:购买域名和主机的原则你知道吗?
  17. 工业机器人介绍及机器人学概述
  18. Dubbo注解方式与spring的整合原理即@DubboService的机制(2)
  19. 苹果处理器性能突破天际,安卓已望尘莫及
  20. 免费使用识别身份证信息、银行卡、驾驶证、行驶证、车牌、营业执照、网络图片文字等

热门文章

  1. GCAM | GCAM-v5.1.3 在 Windows10 上的编译
  2. 原生javaScript利用loaclStorage实现简单购物车
  3. 基金词汇的普及 - ETF和FOF
  4. 马列主义告诉我们:物质基础决定上层建筑 - 移动互联网时代之后的时代演进推断...
  5. ramdisk和linux PE,PE下建立Ramdisk盘的详细教程
  6. 联想台式主机拆机教程_联想一体机电脑该怎么拆机?
  7. 非因解读 | DSP空间全转录组+单细胞测序 描绘新冠患者多器官空间组织图谱
  8. java struts 介绍_Struts简介、原理及简单实现
  9. Visio2013中插入Mathtype公式的方法
  10. 【面试篇】ConcurrentHashMap1.8 扩容细节