前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaSE - 排序算法

JavaSE - 排序算法

作者头像
承苏凯
发布2020-07-24 10:01:45
2290
发布2020-07-24 10:01:45
举报
文章被收录于专栏:唯手熟尔唯手熟尔

数组与排序

杨辉三角

代码语言:javascript
复制
Scanner m = new Scanner(System.in);
        int s = m.nextInt();
        int[][] str = new int[s][s];
        for (int i=0;i<str.length;i++){
            for (int j = 0;j<=i;j++){
                if(j == 0||j==i){
                    str[i][j] = 1;
                }
                else{
                    str[i][j] = str[i-1][j]+str[i-1][j-1];
                }
            }
        }
        //点睛之笔 j<=i ----> 解决了数组的列会越界的问题
        for (int i = 0;i < str.length;i++){
            for (int j=0;j<=i;j++){
                System.out.print(str[i][j]+" ");
            }
            System.out.println();
        }
    }

二分查找

前提是数组有序

代码语言:javascript
复制
static
    int BinarySearch(int[] arr, int ele) {
        int minIndex = 0;
        int maxIndex = arr.length - 1;
        int centerIndex = (minIndex + maxIndex) / 2;
        while (minIndex <= maxIndex) {
            if (ele == arr[centerIndex]) {
                return centerIndex;
            } else if (ele > arr[centerIndex]) {
                minIndex = centerIndex + 1;
            } else {
                maxIndex = centerIndex - 1;
            }
            centerIndex = (minIndex + maxIndex) / 2;
        }
        return -1;
    }

冒泡排序

代码语言:javascript
复制
package com.sukai;

import java.util.Arrays;

/**
 * 解决冒泡排序算法
 */
public class Main {
    private static int[] arr = {4,3,2,1,7,5,6};
    public static void change(int a,int b){
        int temp = 0;
        temp = arr[a];
        arr[a] = arr[b];
        arr[b] = temp;
    }
    public static void main(String[] args) {
        for (int i = 0;i < arr.length;i++){
            for (int j = 0;j<arr.length-i-1;j++){
                if(arr[j]>arr[j+1]) {
                change(j, j + 1);
                }
            }
        }
        //使用Arrays.toString()方法
//        for (int i = 0;i<arr.length;i++)
//        System.out.println(arr[i]);
        System.out.println(Arrays.toString(arr));
    }
}

选择排序

代码语言:javascript
复制
public class Main {
    public static void FastSort() {
        int[] arr = {4, 3, 2, 5, 7, 6, 8};
        for (int i = 0; i < arr.length; i++) {
            int pos = 0;
            for (int j = 1; j < arr.length-i; j++) {
                if (arr[pos] < arr[j]) {
                    pos = j;
                }
            }
            int temp = 0;
            temp = arr[pos];
            arr[pos] = arr[arr.length-i-1];
            arr[arr.length-i-1] = temp;
        }
        System.out.println(Arrays.toString(arr));
    }

    public static void main(String[] args)
    {
        Main.FastSort();
    }
}

插入排序

代码语言:javascript
复制
public void Select_Sort(){
        int[] array = new int[]{2,7,6,4,8,5,3};
        for(int i = 1;i<array.length;i++){
            int pos = array[i];
            for(int j=i;j>0;--j){
                if(array[j-1]>array[j]){
                    array[j] = array[j-1];
                    array[j-1] = pos;
                }else{
                    array[j] = pos;
                    break;
                }
            }
        }
        System.out.print(Arrays.toString(array));
    }

快速排序

代码语言:javascript
复制
public static void quickSort(int[] arr,int low,int high){
        if(low>high){
            return;
        }
        int t;
        int i = low;
        int j = high;
        //temp就是基准位
        int temp = arr[low];
        while (i<j) {

            while (temp<=arr[j]&&i<j) {
                j--; }

            while (temp>=arr[i]&&i<j) {
                i++; }

            if (i<j) {
            t = arr[j]; arr[j] = arr[i]; arr[i] = t;
        }
    }

    arr[low] = arr[i];
    arr[i] = temp;
    quickSort(arr, low, j-1);
    quickSort(arr, j+1, high);
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-03-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数组与排序
    • 杨辉三角
      • 二分查找
        • 冒泡排序
          • 选择排序
            • 插入排序
              • 快速排序
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档