美文网首页
十大排序算法——选择排序

十大排序算法——选择排序

作者: 瓦西大人 | 来源:发表于2018-07-18 14:23 被阅读0次

    主要思想:

    每次找一个最小值。

    Java

    public class Select {
        public static void main(String[] args) {
            int[] array = new int[]{2, 3, 5, 8, 9, 0, 7, 5, 1, 6, 8, 7};
            sort(array);
            System.out.println(Arrays.toString(array));
        }
    
        private static void sort(int[] array) {
            int n = array.length;
            for (int i = 0; i < n-1; i++) {
                int min = i;
                for (int j = i+1; j < n; j++) {
                    if (array[j] < array[min]) min = j;
                }
                int temp = array[i];
                array[i] = array[min];
                array[min] = temp;
    
            }
        }
    }
    

    C

    void SelectSortArray()   { 
          int min_index; 
            for(int i=0;i<n-1;i++)   { 
             min_index=i; 
                 for(int j=i+1;j<n;j++)//每次扫描选择最小项 
                    if(arr[j]<arr[min_index])  min_index=j; 
                      //找到最小项交换,即将这一项移到列表中的正确位置 
                       if(min_index!=i) { 
                           int temp; 
                           temp=arr[i]; arr[i]=arr[min_index]; arr[min_index]=temp; 
                } 
           } 
    } 
    

    最好和最坏情况

    效率都是O(n²),适用于排序小的列表

    相关文章

      网友评论

          本文标题:十大排序算法——选择排序

          本文链接:https://www.haomeiwen.com/subject/pipopftx.html