排序03-简单排序法

Posted perferect

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排序03-简单排序法相关的知识,希望对你有一定的参考价值。

简单排序法:用i位置的数据,与n-i+1中所有的数据进行比较,获取最小的记录,并进行交换;

时间复杂度:O(n^2)

特点:数据交换,移动次数最少;

测试代码:

public class SimpleSort {

    public static void main(String[] args) {
//        int[] arr = {2,8,5,7,3,1,10,11,6};
        int[] arr = {2,3,5,7,8,1,10,11,6};
        System.out.println(Arrays.toString(arr));
        simpleSort(arr);

    }
    //通用,用于数据交换
    public static void swap(int[] arr , int i ,int j){
        int temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }

    public static void simpleSort(int[] arr){

        int i,j,min;
        for(i = 0 ; i< arr.length ; i++){
          min = i ;
          for(j = i+1 ; j<arr.length ; j++){
            if( arr[min] > arr[j] ){
                min = j;
            }
          }
          if(min != i){
            swap(arr,i,min);
          }
            System.out.println(Arrays.toString(arr));
        }
    }

 实现过程:

技术图片

以上是关于排序03-简单排序法的主要内容,如果未能解决你的问题,请参考以下文章

找到多个名为 [spring_web] 的片段。这对于相对排序是不合法的

排序系列03--归并排序

重温基础算法内部排序之简单插入排序法

算法大神之路----排序(插入排序法)

冒泡法排序

记录学博图—SCL排序之选择排序法