- 浏览: 144798 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (138)
- java基础 (26)
- 日常工作经验总结 (22)
- SVN学习与使用 (1)
- JBOSS学习与实践 (1)
- webService学习与实践 (4)
- redis学习与实践 (12)
- spring学习与实践 (0)
- hibernate学习与实践 (4)
- Struts2学习与实践 (0)
- mybatis学习与实践 (0)
- SpringMVC学习与实践 (0)
- jfreechart学习与使用 (0)
- javaScript学习与实践 (1)
- linux学习与实践 (4)
- Python学习与实践 (7)
- Oracle学习与实践 (21)
- Mysql学习与实践 (4)
- HTML5+CSS3学习与实践 (0)
- DIV+CSS学习与实践 (0)
- tomcat学习与实践 (1)
- mongodb学习与实践 (1)
- Git学习与实践 (2)
- hadhoop学习与实践 (0)
- shiro学习与实践 (0)
- CMS学习与实践 (0)
- Jmeter学习与实践 (0)
- java测试学习与实践 (2)
- bootstrap学习与实践 (0)
- jquery学习与实践 (0)
- Spring+hibernate+Struts2框架开发CRM项目 (0)
- JVM学习与实践 (0)
- 推荐学习网站 (1)
- 日常工作必备小技能 (4)
- Apache实践 (1)
- dubbo学习与实践 (2)
- Centos7 (6)
- 面试题目集合(收集各大网站) (4)
- 大数据学习 (1)
- 财富本 (2)
- 股票投资学习 (0)
- ZooKeeper (0)
- python切割集合里面相同的元素到一个集合里面 (1)
- 机器学习与深度学习 (1)
最新评论
-
魏叔武:
...
基于UDP协议的Socket编程
选择排序是一种简单直观的排序算法,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间。
算法步骤
1,首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置
2,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。
3,重复第二步,直到所有元素均排序完毕。
java代码实现:
结果:
算法步骤
1,首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置
2,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。
3,重复第二步,直到所有元素均排序完毕。
java代码实现:
package com.paixu; public class selectionSort { /** * 选择排序 实现原理: 1, 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置 * * 2,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。 * * 3,重复第二步,直到所有元素均排序完毕。 */ public static void main(String[] args) { // 定义一个数组 int[] selection = { 1, 4, 5, 7, 81, 23, 46, 67, 98, 64, 33, 37, 99, 111, 23, 3, 298 }; System.out.println("未排序的数组:\n"); for (int m = 0; m < selection.length; m++) { System.out.print(selection[m]+" ,"); } // 定义最小值的索引以及一个临时变量 int minIndex, temp; for (int i = 0; i < selection.length - 1; i++) { // 设置开始排序的时候,设置第一个为最小的值,便于后续比较 minIndex = i; //每次比较最小值时,比较过的不再比较范围(这里不设置j=i+1),排序会错误的哦 for (int j = i+1; j < selection.length; j++) { // 遍历数组,找下一个最小值的索引 if (selection[j] < selection[minIndex]) { minIndex = j; } } // 数据交换 temp = selection[i]; selection[i] = selection[minIndex]; selection[minIndex] = temp; System.out.println("\n第" + (i+1) + "次排序后:\n"); for (int n = 0; n < selection.length; n++) { System.out.print(selection[n]+" "); } System.out.println(""); } } }
结果:
未排序的数组: 1 ,4 ,5 ,7 ,81 ,23 ,46 ,67 ,98 ,64 ,33 ,37 ,99 ,111 ,23 ,3 ,298 , 第1次排序后: 1 4 5 7 81 23 46 67 98 64 33 37 99 111 23 3 298 第2次排序后: 1 3 5 7 81 23 46 67 98 64 33 37 99 111 23 4 298 第3次排序后: 1 3 4 7 81 23 46 67 98 64 33 37 99 111 23 5 298 第4次排序后: 1 3 4 5 81 23 46 67 98 64 33 37 99 111 23 7 298 第5次排序后: 1 3 4 5 7 23 46 67 98 64 33 37 99 111 23 81 298 第6次排序后: 1 3 4 5 7 23 46 67 98 64 33 37 99 111 23 81 298 第7次排序后: 1 3 4 5 7 23 23 67 98 64 33 37 99 111 46 81 298 第8次排序后: 1 3 4 5 7 23 23 33 98 64 67 37 99 111 46 81 298 第9次排序后: 1 3 4 5 7 23 23 33 37 64 67 98 99 111 46 81 298 第10次排序后: 1 3 4 5 7 23 23 33 37 46 67 98 99 111 64 81 298 第11次排序后: 1 3 4 5 7 23 23 33 37 46 64 98 99 111 67 81 298 第12次排序后: 1 3 4 5 7 23 23 33 37 46 64 67 99 111 98 81 298 第13次排序后: 1 3 4 5 7 23 23 33 37 46 64 67 81 111 98 99 298 第14次排序后: 1 3 4 5 7 23 23 33 37 46 64 67 81 98 111 99 298 第15次排序后: 1 3 4 5 7 23 23 33 37 46 64 67 81 98 99 111 298 第16次排序后: 1 3 4 5 7 23 23 33 37 46 64 67 81 98 99 111 298
发表评论
-
jdk1.8切换1.7失效问题
2019-12-24 00:02 420项目需要jdk1.7,高了启动不了。会报错。 然而,我安装j ... -
map集合遍历
2017-09-05 16:10 522public class Test{ pu ... -
JVM调优总结(十)-调优方法
2017-07-30 21:45 0http://pengjiaheng.iteye.com/bl ... -
框架整合目标
2017-07-21 21:35 01, spring+hibernate+struts2+my ... -
java利用jxl.jar生成excel文档
2017-06-28 15:05 371java代码: package com.test.read ... -
利用jxl读取excel文件里面的内容
2017-06-28 14:23 467excel里面的内容: ... -
数组与集合互相转化
2017-04-21 20:20 368package com.ray.util; impo ... -
数组转化为集合
2017-04-16 21:07 848package com.ray.test; im ... -
快速排序
2017-03-31 14:32 374public class QuickSort { publ ... -
归并排序
2017-03-31 14:20 424public class mergeSort { ... -
希尔排序
2017-03-31 13:44 343public class shellSort { ... -
插入排序
2017-03-31 11:55 299插入排序的代码实现虽然没有冒泡排序和选择排序那么简单粗暴,但它 ... -
HTTP协议详解(真的很经典)
2017-03-27 14:14 381[b][b]HTTP是一个属于应用层的面向对象的协议,由于其简 ... -
多线程学习的几篇文章
2017-02-06 17:55 383Java多线程(一)、多线程的基本概念和使用 http:// ... -
java实现可变参数的方法
2017-02-06 17:16 365/** * * * @author Administr ... -
java实现日期的时间的加减
2017-02-06 17:11 1063/** * 时间的加减 * @author Adminis ... -
冒泡排序算法java
2016-12-07 15:22 432今天突然被人问到冒泡排序怎么解决,一时之间自己竟 ... -
FTP上传文件功能
2016-12-06 09:31 403ftp上传功能是很多的应用软件都必备的一个基础功能,特别是CM ... -
java基础之map集合遍历
2016-11-04 16:27 452由于map集合在平时用的时候都是直接get(key)取出单个值 ... -
基于UDP协议的Socket编程
2016-10-23 14:11 1495TCP的可靠保证,是它的 ...
相关推荐
(1) 完成5种常用内部排序算法的演示,5种排序算法为:快速排序,直接插入排序,选择排序,堆排序,希尔排序; (2) 待排序元素为整数,排序序列存储在数据文件中,要求排序元素不少于30个; (3) 演示程序开始,...
实现以下常用的内部排序算法并进行性能比较:"直接插入排序"," 折半插入排序"," 2—路插入排序"," 表插入排序"," 希尔排序"," 起泡排序"," 快速排序"," 简单选择排序"," 树形选择排序"," 堆排序"," 归并排序"," 链式...
在本文中,我们将深入探讨四种经典的排序算法:插入排序、选择排序、基数排序和冒泡排序,以及它们在C++语言中的实现。 **插入排序(Insertion Sort)** 插入排序是一种简单直观的排序算法,它的工作原理类似于我们...
选择排序是一种简单的排序算法,它的基本思想是在未排序的序列中找到最小(或最大)的元素,存放到排序序列的起始位置,然后再从剩余未排序的元素中继续寻找最小(或最大)的元素,然后放到已排序序列的末尾。...
本文将深入探讨一种经典的排序算法——选择排序,并通过给定的C语言代码示例来详细解析其工作原理和实现过程。 ### 选择排序的基本概念 选择排序是一种简单直观的比较排序算法。其基本思想是在未排序序列中找到...
本话题主要探讨六种内部排序算法:直接插入排序、希尔排序、冒泡排序、快速排序、选择排序以及堆排序。这六种排序算法各有优劣,适用于不同的场景,接下来我们将逐一进行详细阐述。 1. **直接插入排序**: 直接...
以下是关于"冒泡排序,选择排序,插入排序,希尔排序,堆排序,归并排序,快速排序"这七种常见排序算法的源码实现及相关知识点的详细解释: 1. **冒泡排序**:冒泡排序是一种简单的排序算法,它重复地遍历待排序的...
本资源提供了七大经典排序算法的实现程序,包括快速排序、冒泡排序、选择排序、归并排序、插入排序、希尔排序和堆排序。下面将逐一详细介绍这些排序算法及其原理。 1. 快速排序:由C.A.R. Hoare提出,是一种采用...
### 选择排序详解 #### 一、选择排序简介 选择排序是一种简单直观的比较排序算法。它的基本思想是:在未排序序列中找到最小(或最大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小...
本主题涵盖了六种经典的排序算法:希尔排序、堆排序、快速排序、简单选择排序、插入排序和冒泡排序。这些算法各有特点,适用于不同的场景,下面将逐一详细介绍。 1. **希尔排序**:希尔排序是由Donald Shell提出的...
在本文中,我们将深入探讨四种常见的内部排序方法:插入排序、快速排序、选择排序以及再次提到的选择排序。这四种排序方法在不同的场景下各有优劣,理解它们的工作原理和性能特性对于优化算法至关重要。 **1. 插入...
冒泡排序和选择排序是两种基础的排序算法,它们在计算机科学中有着广泛的应用,尤其在教学和理解排序原理时非常关键。这两种算法虽然简单,但在特定情况下可以通过优化提高效率。 首先,我们来详细探讨冒泡排序。...
线性选择排序是一种基础的排序算法,其主要思想是通过遍历待排序的序列,找到当前未排序部分的最小(或最大)元素,将其与序列的第一个元素交换位置,然后对剩下的元素重复此过程,直到整个序列有序。这个过程可以...
冒泡排序和选择排序是两种基础的排序算法,在计算机科学中有着广泛的应用,尤其是在学习编程语言如C语言时,理解并能实现这两种排序算法是非常重要的。下面将详细讲解这两种排序方法以及它们在C语言中的实现。 **...
简单选择排序是一种基础且直观的排序算法,虽然效率较低,但对理解排序原理非常有帮助。当我们需要在单链表这种非数组结构上进行排序时,需要对基本的简单选择排序算法进行一些调整。接下来,我们将详细探讨如何在...
本文将深入探讨Java编程语言中实现的七种主要排序算法:直接插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序以及归并排序。每种算法都有其独特性,适用于不同的场景和数据特性。 1. **直接插入排序**:...
本项目聚焦于选择排序法,这是一种简单直观的排序算法,适用于小规模数据集或教学目的。 选择排序的工作原理如下: 1. **基本概念**:选择排序是一种不稳定的排序方法,它通过重复地找出待排序序列中的最小(或...
本文将深入探讨C#中常见的四种排序算法:冒泡排序、选择排序、插入排序和希尔排序,以及它们的实现细节和应用场合。 首先,我们来看**冒泡排序**。冒泡排序是一种简单的交换排序方法,它通过不断比较相邻元素并交换...
选择排序是一种简单直观的排序算法,它的工作原理可以分为以下几个步骤: 1. **理解选择排序**:选择排序从数组的第一个元素开始,遍历数组寻找当前未排序部分的最小(或最大)元素。找到后,将这个最小(或最大)...
本项目涵盖了五种经典的排序算法:快速排序、堆排序、归并排序、插入排序和选择排序。接下来,我们将深入探讨这些算法的原理、实现及性能特点。 1. **快速排序**: 快速排序由C.A.R. Hoare在1960年提出,是一种采用...