选择排序:
1、找出最小的数值放在第一位
2、找出剩余数据中最小的数值放在第二位,以此类推,直到最后一个数值

算法的时间复杂度为:O(n)

'''
选择排序:
1、找出最小的数值放在第一位
2、找出剩余数据中最小的数值放在第二位,以此类推,直到最后一个数值 算法的时间复杂度为:O(n)
'''
def find_min(list):
min = list[0]
minIndex = 0
for i in range(len(list)):
if(list[i] < min):
min = list[i]
minIndex = i
return minIndex def select_sort(list):
newList = []
for i in range(len(list)):
minIndex = find_min(list)
print(minIndex)
newList.append(list.pop(minIndex))
return newList if __name__ == '__main__':
list = [32, 13, 28, 5, 23, 56, 12, 78, 34]
result = select_sort(list)
print(result) #第二种
def select_sort(list):
if len(list) < 2:
return list
else:
for i in range(len(list) - 1):
for j in range(i + 1, len(list)):
if list[i] > list[j]:
tmp = list[i]
list[i] = list[j]
list[j] = tmp
return list if __name__ == "__main__":
list = [32, 13, 28, 5, 23, 56, 12, 78, 34, 1, 5]
result = select_sort(list)
print(result)

Java版:

/**
* 选择排序:
1、找出最小的数值放在第一位
2、找出剩余数据中最小的数值放在第二位,以此类推,直到最后一个数值
* Created by fred on 2018/7/31.
*/
public class SelectSort {
public static void main(String[] args) {
int[] arr = {3, 9, 1, 5, 2, 8, 4};
selectSort(arr);
for(int i : arr){
System.out.println(i);
}
}
public static void selectSort(int[] arr){
for(int i = 0; i < arr.length - 1; i++){
for(int j = i + 1; j < arr.length; j++){
if(arr[i] > arr[j]){
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
}
}

选择排序-Python & Java的更多相关文章

  1. 选择排序-Python与PHP实现版

    选择排序Python实现 import random # 生成待排序数组 a=[random.randint(1,999) for x in range(0,36)] # 选择排序 def selec ...

  2. 选择排序之Java实现

    选择排序之Java实现 一.方法一 package cn.com.zfc.lesson21.sort; /** * * @title SelectSort * @describe 选择排序 * @au ...

  3. 选择排序算法Java与Python实现

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

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

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

  5. Java基础(46):选择排序的Java封装(完整可运行)

    1 package lsg.ap.select; import java.util.Random; public class SelectSort { //选择排序 /** *@author: 梁山广 ...

  6. 选择排序——Python实现

    选择排序: 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理如下.首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小( ...

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

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

  8. 选择排序 思想 JAVA实现

    已知一个数组 9.29.95.47.79.37.18.56.96.22 使用选择排序是数组有序 选择排序同样是一个运行时间为O(N²)的排序算法. 算法思想:(以从小到大为例) 9.29.95.47. ...

  9. 排序算法-选择排序(Java)

    package com.rao.linkList; import java.util.Arrays; /** * @author Srao * @className SelectSort * @dat ...

随机推荐

  1. 【Java架构:基础技术】一篇文章搞掂:Maven

    本文篇幅较长,建议合理利用右上角目录进行查看(如果没有目录请刷新). 本文基于<Maven 实战>一书进行总结和扩展,大家也可以自行研读此书. 一.Maven简介 1.1.什么是Maven ...

  2. 20175203 2018-2019-2《Java程序设计》第五周学习总结

    20175203 2018-2019-2<Java程序设计>第五周学习总结 第六章:接口与实现 本周学习了<Java程序设计>第六章的内容:接口与实现,以下为本周学习总结. 知 ...

  3. API参考文档

    Android 中文版:http://www.apiref.com/android-zh/index.html Bootstrap3 教程:http://www.apiref.com/bootstra ...

  4. 人物-IT-周鸿祎:百科

    ylbtech-人物-IT-周鸿祎:百科 周鸿祎(zhōu hóng yī),1970年10月4日生于湖北省黄冈市蕲春县.360公司创始人.董事长兼CEO.奇酷CEO.九三学社中央委员.九三学社中央科 ...

  5. Windows-添加环境变量(path)

    使用命令提示符(cmd.批处理.Batch..bat)添加环境变量 永久环境变量 命令提示符下修改 注意:要使用管理员身份运行 cmd set PATH=%PATH%;要添加的路径 reg add & ...

  6. java中子类继承父类程序执行顺序

    java中子类继承父类程序执行顺序 FatherTest.java public class FatherTest { private String name; public FatherTest() ...

  7. 用 Flask 来写个轻博客 (5) — (M)VC_SQLAlchemy 的 CRUD 详解

    Blog 项目源码:https://github.com/JmilkFan/JmilkFan-s-Blog 目录 目录 前文列表 扩展阅读 SQLAlchemy 的 CRUD Create 增添数据 ...

  8. WPF常规表单验证

    1:ViewModel 实现验证接口 IDataErrorInfo 2:实现接口的相关验证逻辑,并把错误信息反馈给 Error public string this[string columnName ...

  9. 爬虫(四)—— 使用pyecharts展示数据

    pyecharts模块 pyecharts可以将数据形象的在页面中用图表显示 一.安装 pip install pyecharts 二.使用 import pyecharts # 创建一个页面 pag ...

  10. Scrapy框架: 基本命令

    1.创建爬虫项目 scrapy startproject [项目名称] 2.创建爬虫文件 scrapy genspider +文件名+网址 3.运行(crawl) scrapy crawl 爬虫名称 ...