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

主要思想:

每次找一个最小值。

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²),适用于排序小的列表

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容