数组 排序算法1

1 冒泡算法:基本思想,对比相邻的元素值,如果满足条件就交换元素值,把比较小的元素值移动到数组前面,比较大的移动到数组后面
算法实现例子:
package Java.Arr5_0;
/*
* 时间:2018-4-29
* 作者:A_r_l
* 功能:测试数组冒泡排序法
* */
public class BubbleSortTest {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    int[] arr={2,4,5,6,7,8,9,10,12,13};//创建一个数组,乱序
    BubbleSortTest storter=new BubbleSortTest();//创建冒泡排序对象
    storter.sort(arr);//条用排序方法将数组排序

}
/**
 * 冒泡排序、
 * 要排序的数组
 * */
public void sort(int[] arr) {
    // TODO Auto-generated method stub
    for (int i = 1; i < arr.length; i++) {
        //判断相邻两个数,大的数排后面
    for (int j = 0; j < arr.length-i; j++) {
        if(arr[j]>arr[j+1]){
            int temp=arr[i];//把第一个数保存到临时变量中
            arr[j]=arr[j+1];//把第二个数保存到第一个元素单元中
            arr[j+1]=temp;//把临时变量保存到第二个元素中去

        }
    }

    }
    showArr(arr);//输出冒泡排序后的元素;

}
private void showArr(int[] arr) {

    /**
     * 要显示的数组
     * */
    for(int i:arr){//遍历数组
        System.out.print(">"+i);//输出买个数组元素
    }
    System.out.println();
}

}

2直接排序
思想:将指定排序的位置与其他数组元素分别比较,如果满足条件,就交换元素值,
例子:
package Java.Arr5_0;
/**
* 功能;测试数组直接排序
* 时间:2018-04-30
* 作者:A_r_l
* */

public class SelectSort {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    int[] arr={4,5,3,6,7,89};//创建一个数组
    SelectSort sorte=new SelectSort();//创建一个调用排序的数组对象
    sorte.sort(arr);//创建一个调用数组排序方法

}
/**
 * 要排序的数组
 * */
private void sort(int[] arr) {
    // TODO Auto-generated method stub
    int index;//
    for (int i = 1; i < arr.length; i++) {//元素值第一个位置的元素
        index=0;
        for (int j = 0; j <= arr.length-i; j++) {
            if(arr[j]>arr[index]){
                index=j;
            }
        }
        int temp=arr[arr.length-i];//第一个元素值保存到临时变量
        arr[arr.length-i]=arr[index];//把第二个元素值保存带第一个元素值单元中
        arr[index]=temp;//把临时变量(第一个元素值保存到第二个元素中)
    }
    showArr(arr);
}
private void showArr(int[] arr) {
    // TODO Auto-generated method stub
    for(int i:arr){//遍历数组
        System.out.print("》"+i);//输出数组
    }
    System.out.println();
}

}

3反转排序
思想:以相反的顺序把原数组重新排序
例子:
package Java.Arr5_0;
/**
* 功能:测试反转排序
* 时间:2018-05-02
* 作者;A_r_l
* */

public class ReverseSort {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    int[] arr={10,20,30,40,50,60,70,80,90,8};//创建数组
    ReverseSort soretReverseSort=new ReverseSort();//创建数组对象
    soretReverseSort.sort(arr);//调用数组对象的方法

}
/**
 * 直接选择排序法
 * */
public void  sort(int[] arr) {
    System.out.print("数组原有内容:");
    showArr(arr);
    int temp;
    int len=arr.length;
    for(int i=0;i<len/2;i++){
        temp=arr[i];
        arr[i]=arr[len-1-i];
        arr[len-1-i]=temp;

    }
    System.out.print("数组反转之后的内容:");
    showArr(arr);//输出数组
}
private void showArr(int[] arr) {
    // TODO Auto-generated method stub
    for(int i:arr){
        System.out.print("\t"+i);//输出买个数组元素值
    }
    System.out.println();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值