zoukankan      html  css  js  c++  java
  • 【算法】排序

     1 package main;
     2 
     3 import java.io.BufferedReader;
     4 import java.io.BufferedWriter;
     5 import java.io.FileReader;
     6 import java.io.FileWriter;
     7 import java.util.*;
     8 import java.util.concurrent.ExecutorService;
     9 import java.util.concurrent.Executors;
    10 import java.util.concurrent.locks.Condition;
    11 import java.util.concurrent.locks.Lock;
    12 import java.util.concurrent.locks.ReentrantLock;
    13 
    14 public class Main {
    15     public static void main(String[] args) {
    16         int[] array = {100, 0, 1, 2, 4, 3, 5, 4, 5, 6, 7, 8, 9, 10, 11, 12};
    17 
    18         //冒泡排序
    19         for (int i = 0; i < array.length; i++) {
    20             boolean flag = false;
    21             for (int j = 0; j < array.length - i - 1; j++) {
    22                 if (array[j] > array[j + 1]) {
    23                     int temp = array[j];
    24                     array[j] = array[j + 1];
    25                     array[j + 1] = temp;
    26                     flag = true;
    27                 }
    28             }
    29             if (flag) {
    30                 break;
    31             }
    32         }
    33         System.out.println(Arrays.toString(array));
    34 
    35         int[] array_2 = {100, 0, 1, 2, 4, 3, 5, 4, 5, 6, 7, 8, 9, 10, 11, 12};
    36         //简单选择排序
    37         for (int i = 0; i < array.length; i++) {
    38             int loc = i;
    39             for (int j = i + 1; j < array.length; j++) {
    40                 if (array_2[j] < array_2[loc]) {
    41                     loc = j;
    42                 }
    43             }
    44             if (loc != i) {
    45                 int temp = array_2[i];
    46                 array_2[i] = array_2[loc];
    47                 array_2[loc] = temp;
    48             }
    49         }
    50         System.out.println(Arrays.toString(array_2));
    51 
    52         int[] array_3 = {3,5,4,2,1,6,7,8};
    53         //快速排序
    54         quitSort(array_3,0,array_3.length-1);
    55         System.out.println(Arrays.toString(array_3));
    56 
    57     }
    58 
    59     static void quitSort(int[] array, int left, int right) {
    60         int i = left;
    61         int j = right;
    62         if (left >= right) {
    63             return;
    64         }
    65         int base = array[i];
    66         while (i < j) {
    67             while (i < j && array[j] >= base) {
    68                 j--;
    69             }
    70 
    71             if (j > i) {
    72                 array[i] = array[j];
    73             }
    74             while (i < j && array[i] <= base) {
    75                 i++;
    76             }
    77             if (i < j) {
    78                 array[j] = array[i];
    79             }
    80         }
    81         array[i] = base;
    82         quitSort(array,left,i-1);
    83         quitSort(array,i+1,right);
    84     }
    85 }
  • 相关阅读:
    c#发送邮件.net1.1和.net2.0中的两个方法
    六步使用ICallbackEventHandler实现无刷新回调
    报表项目总结
    转载:Tomcat Port 8009 与AJP13协议
    JUnit4 使用指南二 (熟练掌握)
    JUnit4 使用指南一 (简单上手)
    HP的项目中曾做一个业务日志系统
    Unitils使用(转载)
    iBatis 学习
    JUnit4 使用指南三 (Runner 特性分析)
  • 原文地址:https://www.cnblogs.com/yanyojun/p/9496436.html
Copyright © 2011-2022 走看看