Java 实现

package common;

public class SimpleArithmetic {

    /**
* 选择排序
* 输入整形数组:a[n] 【4、5、3、7】
* 1. 取数组编号为i(i属于[0 , n-2])的数组值 a[i],即第一重循环
* 2. 假定a[i]为数组a[k](k属于[i,n-1])中的最小值a[min],即执行初始化 min =i
* 3. 取数组编号为m(m属于[i+1,n-1])的数组值 a[m],即第二重循环
* 4. 若 a[m] < a[min], 则 min = m ; min 始终记录 a[k]中的最小值
* 5. 当 min != i时,即第二步的假定a[i]为a[k]中的最小值不成立时,需要将a[min]与a[i]的值互换
*
* @param arr 整形数组
*/
public static void selectSort(int[] arr){
int n = arr.length;
int min = 0;
int tmp = 0;
for(int i = 0; i < n-1; i++){
min = i;
for(int m = i + 1; m < n; m++){
if(arr[m]<arr[min]) min =m;
}
if(i != min){
tmp = arr[i];
arr[i] = arr[min];
arr[min] = tmp;
}//end of if
}//end of for } public static void main(String[] args) {
// TODO 自动生成的方法存根
int[] arr = {12,23,9,24,15,3,18};
SimpleArithmetic.selectSort(arr); for(int i = 0; i < arr.length; i++){
System.out.print(arr[i]+" ");
}
//输出 3 9 12 15 18 23 24 } }

Python 实现

Python 2.7.9 (default, Dec 10 2014, 12:24:55) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> class SimpleArithmetic:
def selectSort(self,arr):
v_len = len(arr)
v_index_i = 0
while v_index_i != v_len -1:
i = arr[v_index_i]
v_min = i
for m in arr[v_index_i+1:v_len]:
if m < v_min:
v_min = m
if i != v_min:
v_tmp = arr.index(v_min)
arr[v_index_i] = v_min
arr[v_tmp] = i
v_index_i = v_index_i + 1 >>> sa = SimpleArithmetic()
>>> arr = [12,23,9,24,15,3,18]
>>> sa.selectSort(arr)
>>> arr
[3, 9, 12, 15, 18, 23, 24]
>>>

选择排序算法Java与Python实现的更多相关文章

  1. 《算法4》2.1 - 选择排序算法(Selection Sort), Python实现

    选择排序算法(Selection Sort)是排序算法的一种初级算法.虽然比较简单,但是基础,理解了有助于后面学习更高深算法,勿以勿小而不为. 排序算法的语言描述: 给定一组物体,根据他们的某种可量化 ...

  2. sf02_选择排序算法Java Python rust 实现

    Java 实现 package common; public class SimpleArithmetic { /** * 选择排序 * 输入整形数组:a[n] [4.5.3.7] * 1. 取数组编 ...

  3. 排序算法系列:选择排序算法JAVA版(靠谱、清晰、真实、可用、不罗嗦版)

    在网上搜索算法的博客,发现一个比较悲剧的现象非常普遍: 原理讲不清,混乱 啰嗦 图和文对不上 不可用,甚至代码还出错 我总结一个清晰不罗嗦版: 原理: 从数组头元素索引i开始,寻找后面最小的值(比i位 ...

  4. 【排序算法】直接选择排序算法 Java实现

    基本思想 直接选择排序是从无序区选一个最小的元素直接放到有序区的最后. 初始状态:无序区为a[1...n],有序区为空. 第一次排序:在无序区a[1...n]中选出最小的记录a[k],将它与有序区的第 ...

  5. 选择排序算法Java实现

    一. 算法描述 选择排序:比如在一个长度为N的无序数组中,在第一趟遍历N个数据,找出其中最小的数值与第一个元素交换,第二趟遍历剩下的N-1个数据,找出其中最小的数值与第二个元素交换......第N-1 ...

  6. python选择排序算法总结

    选择排序算法: a=[6,5,4,3,2,1] 算法思路: 第一步:在列表的第一个位置存放此队列的最小值 声明一个变量min_index等于列表的第一个坐标值0 从第一个位置0坐标开始,和它后边所有的 ...

  7. JAVA简单选择排序算法原理及实现

    简单选择排序:(选出最小值,放在第一位,然后第一位向后推移,如此循环)第一位与后面每一个逐个比较,每次都使最小的置顶,第一位向后推进(即刚选定的第一位是最小值,不再参与比较,比较次数减1) 复杂度: ...

  8. python基础:冒泡和选择排序算法实现

    冒泡排序和选择排序   首先引用一下百度百科对于冒泡算法的定义:   冒泡排序算法的原理如下: 比较相邻的元素.如果第一个比第二个大,就交换他们两个. 对每一对相邻元素做同样的工作,从开始第一对到结尾 ...

  9. 排序算法Java代码实现(一)—— 选择排序

    以下几篇随笔都是记录的我实现八大排序的代码,主要是贴出代码吧,讲解什么的都没有,主要是为了方便我自己复习,哈哈,如果看不明白,也不要说我坑哦! 本片分为两部分代码: 常用方法封装 排序算法里需要频繁使 ...

随机推荐

  1. Linux 常见的trouble shooting故障排错

    Linux 常见的trouble shooting故障排错 备份开机所必须运行的程序对一个运维人员来说是非常有必要的.在实际生产环境中,系统和数据基本都是安装在不同的硬盘上面,因为企业最关心的还是数据 ...

  2. python访问mysql将返回的表转化为json

    ## Licensed to the Apache Software Foundation (ASF) under one or more# contributor license agreement ...

  3. ruby学习总结04

    1.类和实例的关系 使用[实例.class]查看某个对象属于哪个类 使用[实例.instance_of(类名)]判断该实例是否属于某个类 使用[实例.instance_methods]查看类的所有实例 ...

  4. TCP连接的状态详解以及故障排查

    我们通过了解 TCP各个状态 ,可以排除和定位网络或系统故障时大有帮助. 一.TCP状态 LISTENING :侦听来自远方的TCP端口的连接请求 . 首先服务端需要打开一个 socket 进行监听, ...

  5. 在主类E的main方法中,创建类B 的对象并赋给父类A的对象a,使用上转型对象a来测试上转型对象的一些特性。

    public class A { private int a=1; public int getA() { return a; } public void setA(int a) { this.a = ...

  6. HDU 4441 Queue Sequence(splay)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4441 题意:一个数列,三种操作:(1)插入:找到没在当前数列中的最小的正整数i,将其插在位置p之后,并 ...

  7. Android 网格布局短信发送界面

    <?xml version="1.0" encoding="utf-8"?> <GridLayout xmlns:android=" ...

  8. which、whereis、locate、find 命令用法

    which.whereis.locate.find 命令用法   大部分转自http://312788172.iteye.com/blog/730280,有修改 我们经常在linux要查找某个文件,但 ...

  9. nuget.exe the application could not be started

    http://stackoverflow.com/questions/5730412/error-when-running-the-nuget-exe-command Ok, so this turn ...

  10. Trigger Execution Sequence Of Oracle Forms

    Sequence of triggers fires on Commit.1.  KEY Commit2.  Pre Commit3.  Pre/On/Post Delete4.  Pre/On/Po ...