zoukankan      html  css  js  c++  java
  • 三大排序

    1、插入排序

    原理:每一次将待排序的对象,按其大小,插入到已排好序的的适当位置上,直到对象全部插入为止。

    根据上面原理得知

    i:代表的是比较的元素的下标移动轨迹:1~length;

    j:代表的是被比较的元素的下标移动轨迹:i-1~0; j是往回走

    代码如下:

     1         int [] arr = {3,1,7,5,9,4};
     2         System.out.println(Arrays.toString(arr));
     3         int i ,j ,t;
     4         for(i = 1 ; i < arr.length; i++){
     5             t = arr[i];
     6             for(j = i-1 ;  j >= 0 ; j--){
     7                 if(t < arr[j]){
     8                     arr[j+1] = arr[j];
     9                 }else{
    10                     break;
    11                 }
    12             }
    13             arr[j+1] = t;
    14         }
    15         System.out.println(Arrays.toString(arr));        

    2、冒泡排序

    原理:两两比较,大的往下沉,没比较完一轮,最大的数就留在了末尾。下一轮循环就不要参与了

    根据以上原理得知

    i:外层循环,代表的是循环的轮数:0~length-1

    j:内层循环,代表的是每一轮比较的次数:0~length-1-i

    代码如下:

    1     for(int i = 0;i<arr.length-1;i++){
    2             for(int j = arr.length-1;j>i;j--){
    3                 if(arr[j]<arr[j-1]){
    4                     int temp = arr[j];
    5                     arr[j] = arr[j-1];
    6                     arr[j-1] = temp;
    7                 }
    8             }
    9         }

    3、选择排序

    原理:把数组中所有的元素都和第一个元素进行比较,如果比第一个小,那么,就交换位置。注意:这里的第一个元素,是指未排好序的第一个元素,所有元素是指,除了排好序以及被比较元素之外的所有元素。

    根据以上原理得知

    i:为被比较元素的下标移动轨迹:0~lenth

    j:为比较的元素的下标移动轨迹:i~length-1

    代码如下:

     1     //定义出比较以及被比较的运行轨迹
     2         for(int i = 0;i<arr.length-1;i++){
     3             for(int j = i+1;j<arr.length;j++){
     4     //开始进行比较,即,比较的数比被比较的数小的时候,进行交换位置
     5                 if(arr[j]<arr[i]){
     6                     int temp = arr[i];
     7                     arr[i] = arr[j];
     8                     arr[j] = temp;
     9                 }
    10             }
    11         }
  • 相关阅读:
    那些年 IE 下踩过的坑
    nodeJs的一些常识知识
    通过nvm 切换 npm 版本
    Kafka学习笔记(7)----Kafka使用Cosumer接收消息
    Kafka学习笔记(6)----Kafka使用Producer发送消息
    Kafka学习笔记(5)----Kafka的Consumer
    Kafka学习笔记(4)----Kafka的Leader Election
    Kafka学习笔记(3)----Kafka的数据复制(Replica)与Failover
    Kafka学习笔记(2)----Kafka的架构
    Kafka学习笔记(1)----Kafka的简介和Linux下单机安装
  • 原文地址:https://www.cnblogs.com/dondming/p/3855954.html
Copyright © 2011-2022 走看看