算法基础学习

 

1.冒泡排序:

         一般是指对一串数字进行升序或者降序,依次比较相邻的两个数字,顺序错乱则交换位置,一直遍历比较,直到相邻的两个元素不需要交换位置就停止.

    基础代码:

           

int[] array = {4,2,21,7,13,11};//第一次遍历5次,第二次遍历4次,每次最后一个不需要遍历
//遍历的数组进行排序
for (int i = 1; i < array.length; i++) {
   //排除不需要排序的元素进行对比
    for (int j = 0; j < array.length-i; j++) {
       if (array[j]> array[j+1]){//如果前一个比后面的元素大,则换位置
           int forward = array[j];
           array[j] = array[j+1];
           array[j+1] = forward;
       }
    }
}
Log.d("TestDemoActivity","排序后的数据:"+Arrays.toString(array));

//输出结果如下

2.插入排序

     插入排序就是将元素不断的插入到待排序的元素从而实现排序,主要的方式就是,选定一个待排序的第一个元素作为有序序列.

 

int[] array = {4,2,21,7,13,11};//待排数组
int[] resultArray = new int[array.length]; //有序数组
resultArray[0] = array[0];//选定待排数组的第一个元素作为有序数组的目标元素
for (int i = 1; i < array.length; i++) {
    int temp = array[i];//目标元素
    int index = i;//记录待排元素位置
    while (index>0 && temp<resultArray[index-1]){
        //当待排元素小于有序数组中的元素时,将有序元素当前位置的元素赋值给后面一位
        resultArray[index] = resultArray[index-1];
        index--;
    }
    //将待排元素赋值给排序到的目标位置
    resultArray[index] = temp;
}

  //输出结果如下

 

3.选择排序

    选择排序就是按照我们从待排序列中选择一个元素,后面的所有元素对比,将最小的挪到排好的序列中

 

//选择排序
int[] array = {4,2,21,7,13,11};//待排数组素
for (int i =0 ; i < array.length; i++) {
    int min = array[i];//最小元素
    int minIndex = i;//最小元素位置
    for (int j = i+1; j < array.length; j++) {
        //刷选最小元素和最小元素位置
        if (array[j]<min){
            min = array[j];
            minIndex = j;
        }
    }
    //交换位置
    int temp = array[i];
    array[i]=min;
    array[minIndex] = temp;
}
Log.d("TestDemoActivity","排序后的数据:"+Arrays.toString(array));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值