美文网首页
03 数组排序算法

03 数组排序算法

作者: 晴天卡卡 | 来源:发表于2018-10-27 14:55 被阅读0次

1逆序排序法

解题步骤

1.定义两个索引变量start的值为0,变量end值为数组的长度减1(即数组最后一个元素索引)
2.使用循环,完成数组索引start位置元素与end位置元素值互换
3.在循环过程中,每次循互换结束后,end值减1,start值加1
4.在循环过程中,最先判断start值是否大于end值,若大于,跳出循环
代码如下:

public static void main(String[] args) {
        for (int start=0,end=arr.length-1;end>start;start++,end--){
            int temp=arr[start];
            arr[start]=arr[end];
            arr[end]=temp;
        }
    }

2选择排序法

解题步骤

1.使用for循环(外层循环),指定数组要循环的圈数,循环的圈数为为数组长度-1
2.在每一圈中,通过for循环(内层循环)完成数组要比较的第一个元素和该元素后面的数组元素依次比较到数组的最后一个元素,把小的值放在第一个数组元素中
3.在每一圈中,第一个参与比较的元素由第几圈循环来决定:
a) 进行第一圈元素比较时,要比较的元素为数组的第一个元素,即索引为0的元素
b) 在进行第二圈元素比较时要比较的第一个元素为数组的第二个元素,即索引为1的元素
c) 得出结论:进行第n圈比较时,要比较的第一个元素为数组第n个元素,即数组索引为n-1的元素
代码如下:

  public  static void Paixu(int[] arr){
        //外层循环用来控制数组循环的圈数
        for (int i=0;i<arr.length-1;i++){
        //内层循环用来完成数组元素值比较,把小的元素值互换到要比较的第一个元素中
            for (int j=i+1;j<arr.length;j++){
                if (arr[i]>arr[j]){
                    int temp=arr[i];
                    arr[i]=arr[j];
                    arr[j]=temp;
                }
            }
        }
    }

3冒泡排序法

解题步骤

  1. 使用for循环(外层循环),指定数组要循环的圈数(通过图解可知,数组循环的圈数为数组长度-1)
  2. 在每一圈中,通过for循环(内层循环)完成相邻的元素值依次比较,把大的值放后面的元素中
    3.每圈内层循环的次数,由第几圈循环来决定。
    a) 进行第一圈元素比较时,内层循环次数为数组长度-1
    b) 进行第二圈元素比较时,内层循环次数为数组长度 -2
    c) 依次类推,得出结论:进行第n圈元素比较时,内层循环次数为数组长度-n
    代码如下:
 public static void Maopao(int[] arr){
        for (int i=0;i<arr.length-1;i++){
            for (int j=0;j<arr.length-1-i;j++){
                if (arr[j]>arr[j+1]){
                    int temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
        }
    }

相关文章

  • 03 数组排序算法

    1逆序排序法 解题步骤 1.定义两个索引变量start的值为0,变量end值为数组的长度减1(即数组最后一个元素索...

  • PHP排序算法

    排序算法 冒泡排序(数组排序) 快速排序(数组排序) 参考 http://www.cnblogs.com/enia...

  • PHP常用数组排序算法

    title: PHP常用数组排序算法tags: [PHP,数组,排序,算法] 这几天写到的代码中,用到了许多对数组...

  • Java语言——数组排序算法

    数组有很多常用的算法,包括冒泡排序、直接选择排序和反转排序。 一、冒泡排序 冒泡排序是最常用的数组排序算法之一,它...

  • LeetCode基础算法-数组

    LeetCode基础算法-数组 算法 LeetCode 数组相关 1. 从排序数组中删除重复项 描述:给定一个排序...

  • 快速排序(Java)

    快速排序算法思想: (1)输入的数据信息:输入一个待排序的数组a[n],利用QuickSort算法实现此数组的排序...

  • iOS开发·必会的算法操作:字符串数组排序+模型对象数组排序

    iOS开发·必会的算法操作:字符串数组排序+模型对象数组排序

  • 排序算法

    一、排序算法总结 排序算法题目 排序算法快速排序堆排序归并排序 应用最小K个数(TopK问题)215.数组中的第K...

  • 排序算法

    常见的排序算法 常见的排序算法有:插入、希尔、选择、冒泡、归并、快速、堆排序。。。 插入排序 算法步骤一、从数组的...

  • JavaScript实现排序算法

    排序算法主要用于元素的数组排序,常见的排序算法有冒泡排序,选择排序,插入排序,希尔排序,快速排序,归并排序等,这些...

网友评论

      本文标题:03 数组排序算法

      本文链接:https://www.haomeiwen.com/subject/lhldtqtx.html