算法学习之选择排序

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

  • 算法学习之选择排序

  • 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;
          }
        }
      }

相关推荐