算法学习之选择排序
从一个数组中每次选出一个最大或者最小的值,然后把它放到一个新的数组中,新生成的数组就是一个按顺序的数组。

Python代码实现:
#找最小值的函数
      def findSmallest(arr):
          smallest = arr[0]
          smallest_index = 0
          for i in range(1,len(arr)):
              if arr[i] < smallest:
                  smallest = arr[i]
                  smallest_index = i
          return smallest_index
      #排序方法
      def selectionSort(arr):
          newArr = []
          for i in range(len(arr)):
              smallest = findSmallest(arr)
              newArr.append(arr.pop(smallest))
          return newArr
      #使用
      print selectionSort([5,3,4,1,2])- Java代码实现:
 
public class SelectSort {	
          //使用
          public static void main(String[] args) {
              int[] arr = new int[] { 5,3,4,1,2};
              selectSort(arr);
              for (int i = 0; i < arr.length; i++) {
                  System.out.print(arr[i] + " ");
              }
          }
       	//排序算法
          public static void selectSort(int[] arr) {
              for (int i = 0; i < arr.length - 1; i++) {
                  int minIndex = i; 
                  for (int j = i + 1; j < arr.length; j++) {
                      if (arr[j] < arr[minIndex]) {
                          minIndex = j; 
                      }
                  }
                  if (i != minIndex) {
                      int temp = arr[i];
                      arr[i] = arr[minIndex];
                      arr[minIndex] = temp;
                  }
              }
          }
      }- Javascript实现:
 
//排序算法
      function selectionSort(arr) {
        const length = arr.length;
        for (let i = 0; i < length - 1; i++) {
          let minIndex = i;
          for (let j = i + 1 ; j < length ; j++) {
            if (arr[j] < arr[minIndex]) {
              minIndex = j;
            }
          }
          if (minIndex !== i) {
            const temp = arr[i];
            arr[i] = arr[minIndex];
            arr[minIndex] = temp;
          }
        }
      } 相关推荐
  lixiaotao    2020-10-07  
   美丽的泡沫    2020-09-08  
   nongfusanquan0    2020-08-18  
   hang0    2020-08-16  
   earthhouge    2020-08-15  
   算法改变人生    2020-07-28  
   troysps    2020-07-19  
   Broadview    2020-07-19  
   chenfei0    2020-07-18  
   风吹夏天    2020-07-07  
   yangjingdong00    2020-07-05  
   数据与算法之美    2020-07-05  
   shawsun    2020-07-04  
   数据与算法之美    2020-07-04  
 要知道时间复杂度只是描述一个增长趋势,复杂度为O的排序算法执行时间不一定比复杂度为O长,因为在计算O时省略了系数、常数、低阶。实际上,在对小规模数据进行排序时,n2的值实际比 knlogn+c还要小。
  Evankaka    2020-07-04  
   田有朋    2020-06-28