排序001选择排序于冒泡排序

Posted hbym

tags:

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

参考自 https://www.cnblogs.com/guoyaohua/p/8600214.html

/**
* 冒泡排序
* 相领的位置进行比较,一次循环能确定一个位置元素
* 共需确定length-1个位置
*/
public void bubbleSort(String[] arr){

    for(int i = 0;i < arr.length;i++){//从前到后依次取值arr[i]
        for(int j = 0;j < arr.length-i-1;j++){//j每次从0开始取值,但是比较次数会一次次减少
            //arr[i]相当于每次的定值,拿着去比较所有
            if(arr[i].compareToIgnoreCase(arr[j]) > 0){
                String temp =  arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
            }
        }
    }
}

//选择排序算法
public void selectSort(String[] arr){
    if(arr.length < 0){
        System.out.println("error");
        return;
    }
    for(int i = 0; i < arr.length;i++){//i是每次确定的位置
        int minIndex = i;
        //从前往后依次查找,遇到比arr[i]还小的标记小标为最小,最后交换位置
        for(int j = i+1;j < arr.length;j++){
            if(arr[i].compareToIgnoreCase(arr[j]) > 0){
                minIndex = j;
            }
        }
        String temp = arr[i];
        arr[i] = arr[minIndex];
        arr[minIndex] = temp;
    }
}

//插入排序从后往前依次排序
public void intoSort(String[] arr){
if(arr.length < 0 ){
System.out.println("error");
return;
}
for(int i = 0;i < arr.length;i++){
String curent = arr[i+1];
int m = 0;
for(int j = i+1; j > i;j--){
if(arr[i].compareToIgnoreCase(arr[j])>0){
//向后移动
arr[j] = arr[i];
m = j
}
}
arr[m] = curent;
}
}

以上是关于排序001选择排序于冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章

001 C/C++ 选择排序法

經典算法001--冒泡排序

排序算法之冒泡选择插入排序(Java)

排序算法之冒泡选择插入排序(Java)

冒泡排序?了解一下!

三大基础排序算法(冒泡排序,选择排序,插入排序)