排序算法Java代码实现(一)—— 选择排序
2019-08-16 12:21:46来源:博客园 阅读 ()
排序算法Java代码实现(一)—— 选择排序
以下几篇随笔都是记录的我实现八大排序的代码,主要是贴出代码吧,讲解什么的都没有,主要是为了方便我自己复习,哈哈,如果看不明白,也不要说我坑哦!
本片分为两部分代码:
- 常用方法封装
排序算法里需要频繁使用 交换数组中两数位置 的操作,另外,为了方便我打印数组查看结果,我封装一个 ArrayBase.java基类,用来实现swap方法和printArray方法;
- 选择排序算法
(一)ArrayBase.java
/** * */ package com.cherish.SortingAlgorithm; /** * @author acer * */ public class ArrayBase { /** * */ public ArrayBase() { // TODO 自动生成的构造函数存根 } //数组中两数交换位置 public static void swap(int[] array,int i,int j) { int t = array[i]; array[i] = array[j]; array[j] = t; } //打印数组 public static void printArray(int[] array) { System.out.print("数组打印为:\t"); for(int i = 0; i < array.length;i++) { System.out.print(array[i] + "\t"); } System.out.println(); } }
(二)选择排序算法(代码继承ArrayBase基类,swap和printArray方法直接用)
排序思想:
从数组中选择最小元素,将它与数组的第一个元素交换位置。
再从数组剩下的元素中选择出最小的元素,将它与数组的第二个元素交换位置。
不断进行这样的操作,直到将整个数组排序。
/** * */ package com.cherish.SortingAlgorithm; /** * @author acer * */ public class chapter_1_选择排序 extends ArrayBase { /** * */ public chapter_1_选择排序() { // TODO 自动生成的构造函数存根 } /** * @param args */ public static void main(String[] args) { // TODO 自动生成的方法存根 int[] array = new int[] {3,4,7,9,2,5,1,8}; printArray(array); SelectSorting(array); printArray(array); } /* * 从数组中选择最小元素,将它与数组的第一个元素交换位置。 * 再从数组剩下的元素中选择出最小的元素,将它与数组的第二个元素交换位置。 * 不断进行这样的操作,直到将整个数组排序。 * */ public static void SelectSorting(int[] array) { if(array == null) { return; } int length = array.length; for(int i = 0;i<length-1;i++) { int min = i;//令第1个数为最小的数 for(int j = i + 1;j < length ; j++) { //排序,找出数组剩下的数中最小的数 if(array[min] > array[j]) { min = j; } } swap(array, i, min); } } }
参考文献:https://www.cnblogs.com/snowcan/tag/排序算法/
原文链接:https://www.cnblogs.com/CherishTheYouth/p/CherishTheYouth_2019_0811.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- DES/3DES/AES 三种对称加密算法实现 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash