zoukankan      html  css  js  c++  java
  • 选择排序-Python & Java

    选择排序:
    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;
                    }
                }
            }
        }
    }
    
  • 相关阅读:
    FastAdmin CMS 插件下载
    使用 Python 连接到 PADS Layout
    Javascript undefined 和 null
    反馈给又拍云需要以下信息
    Web前端性能优化之图片优化
    nodejs--实现跨域抓取数据
    HTML6 展望
    cSS3 伪类:nth-child 的使用方法
    css3中的几何图形shape研究
    iScroll5 API速查随记
  • 原文地址:https://www.cnblogs.com/fredkeke/p/9232297.html
Copyright © 2011-2022 走看看