zoukankan      html  css  js  c++  java
  • sf02_选择排序算法Java与Python实现

    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]
    >>> 
  • 相关阅读:
    Dependent Parameters in Concurrent Program using Special Value Set
    USER Management | Role Categories | Roles | Indirect Responsibilities
    asp.net core 1.0初识
    ASP.NET Core管道深度剖析
    linux图机界面机制
    类对象管理方式
    UNICODE串转换成char类型串的四种方法
    进程句柄表与创建句柄表
    虚拟化技术
    Windows基于Apache的svn服务器配置
  • 原文地址:https://www.cnblogs.com/perfei/p/4898345.html
Copyright © 2011-2022 走看看