• 冒泡排序_选择排序_二分法


    冒泡排序

     1 package com.java.paixu;
     2 
     3 /**
     4  * 冒泡排序:相邻的两个元素相比较,符合条件交换位置
     5  * @author syousetu
     6  *
     7  */
     8 public class maopao {
     9     public static void main(String[] args) {
    10         int[]arr={5,6,4,1,23,5};
    11         for (int i = 0; i < arr.length-1; i++) {
    12             for (int j = 0; j < arr.length-1-i; j++) {
    13                 
    14                 if(arr[j]>arr[j+1]){
    15                     int temp=arr[j];
    16                     arr[j]=arr[j+1];
    17                     arr[j+1]=temp;
    18                 }
    19                 
    20                 
    21             }
    22         }
    23         
    24         for (int i : arr) {
    25             System.out.println(i);
    26         }
    27         
    28     }
    29 }

    选择排序

     1 package com.java.paixu;
     2 
     3 public class xuanze {
     4     public static void main(String[] args) {
     5         int []arr={5,7,8,5,2,3,6,4};
     6         for (int i = 0; i < arr.length-1; i++) {
     7             for (int j = i; j < arr.length; j++) {
     8                 if(arr[i]<arr[j]){
     9                     int temp =arr[i];
    10                     arr[i]=arr[j];
    11                     arr[j]=temp;
    12                 }
    13             }
    14         }
    15         
    16         for (int i : arr) {
    17             System.out.println(i);
    18         }
    19         
    20     }
    21 }

    折半查找法使用的前提是查找的数据是必须有序的

    思路:

      定义三个变量记录最大,最小、中间的查找范围索引值,每次都是使用中间索引值与目标进行对比,如何不是符合的目标那么就缩小查找的范围

     1 package com.java.paixu;
     2 
     3 public class erfenfa {
     4     public static void main(String[] args) {
     5         int[]arr={1,5,9,45,68,98,156};
     6         int min=0;
     7         int max=arr.length-1;
     8         int middle=(min+max)/2;
     9         int target=156;
    10         while(true){
    11             if(target>arr[middle]){
    12                 min=middle+1;
    13                 middle=(max+min)/2;
    14               18             }else if(target<arr[middle]){
    19                 max=middle-1;
    20                 middle=(max+min)/2;
    21                 25             }else{
    26                 System.out.println(middle);
    27                 break;
    28             }
    29 } 30 31 } 32 }
  • 相关阅读:
    【转】在xcode5中修改整个项目名
    Mac: Alias[设置命令的别名]
    合并静态库文件
    Xcode6:模拟器消失了?
    Xcode6: CocoaPods 错误 target overrides the `OTHER_LDFLAGS`...
    element-ui之layout布局el-row标签
    sqlserver 数据库显示"正在恢复"的解决办法
    sql server 收缩日志
    mysql Client does not support authtication protocol requested by server;consider upgrading mysql client
    mysql安装版安装教程
  • 原文地址:https://www.cnblogs.com/syousetu/p/6516945.html
Copyright © 2020-2023  润新知