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

    选择排序

      从数组中选择最小的元素,将它与数组的第一个元素交换位置,然后再从数组剩下的元素中选择出最小的元素,将它和数组的第二个元素交换位置。不断这样操作,直到整个数组排序。

      选择排序需要大约n*n/2次比较, 和约n次交换,它的运行时间与输入无关,这个特点使得它对一个排序数组也需要做这么多的比较和交换操作。

    public class Sort{
        public static void selectionSort(int []arr){
            if(arr==null||arr.length<2)
                return;
            for(int i=0;i<arr.length-1;i++){
                int minIndex=i;
                for(int j=i+1;j<arr.length;j++){
                    minIndex=arr[j]<arr[minIndex]?j:minIndex;
                }
                swap(arr,minIndex,i);
            }
        }
        public static void swap(int[]arr,int minIndex,int i){
            int tmp=arr[i];
            arr[i]=arr[minIndex];
            arr[minIndex]=tmp;
        }
    }
    
  • 相关阅读:
    POJ1821 Fence 单调队列优化DP
    ZOJ 4114 dp
    2019 Multi-University Training Contest 2
    Fibonacci 矩阵乘法入门
    C
    258. Add Digits
    292. Nim Game
    345. Reverse Vowels of a String
    344. Reverse String
    169. Majority Element
  • 原文地址:https://www.cnblogs.com/yjxyy/p/11101616.html
Copyright © 2011-2022 走看看