美文网首页
常见的排序算法(1)

常见的排序算法(1)

作者: 农民工进城 | 来源:发表于2019-04-29 16:20 被阅读0次

要点

  • 冒泡排序
  • 选择排序
  • 插入排序
  • 希尔排序

1. 冒泡排序

public static int[] bubbleSort(int[] arr) {
        int len = arr.length;
        for (int i = 0; i < len; i++) {
            for (int j = i + 1; j < len; j++) {
                if (arr[j] > arr[i]) {
                    int temp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp;
                }
            }
        }
        return arr;
    }

    public static int[] bubbleSort2(int[] arr) {
        int len = arr.length;
        boolean flag = false;
        for (int i = 0; i < len; i++) {
            for (int j = 0; j < len - i - 1; j++) {
                if (arr[j + 1] > arr[j]) {
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                    flag = true;
                }
            }
            if (!flag) {
                break;
            }
        }
        return arr;
    }

2.选择排序

    public static int[] selectedSort(int[] arr) {
        int len = arr.length;
        for (int i = 0; i < len; i++) {
            int m = i;
            int j = i + 1;
            for (; j < len; j++) {
                if (arr[j] > arr[m]) {
                    m = j;
                }
            }

            int max = arr[m];
            arr[m] = arr[i];
            arr[i] = max;
        }
        return arr;
    }

3. 插入排序

    public static void insertSort(int[] arr) {

        int len = arr.length;
        for (int i = 1; i < len; i++) {
            int j=i;
            int temp=arr[j];
            while(arr[j-1]>temp) {
                arr[j]=arr[j-1];
                j--;
                if(j==0) {
                    break;
                }
            }
            arr[j]=temp;
        }

    }

4.希尔排序

public static void shellSort(int[] arr) {
        int len = arr.length;
        int gap = len / 2;

        do {
            for (int i = gap; i < len; i++) {
                int k = i;
                int value = arr[i];
                for (int j = i - gap; j >= 0; j -= gap) {
                    if (value > arr[j]) {
                        arr[j + gap] = arr[j];
                        k = j;
                    }
                }
                if (k != i) {
                    arr[k] = value;
                }
            }
            gap = gap / 2;
        } while (gap > 0);

    }

相关文章

  • LeetCode大全

    1.常见排序算法: 常见的排序算法:冒泡排序、选择排序、插入排序、归并排序、快速排序、希尔排序、堆排序、计数排序、...

  • 数据结构与算法

    常见排序算法 堆排序 算法大全 算法大汇总

  • 常用排序算法实现

    1、常见排序算法大致有以下几种:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序2、各种排序算法...

  • 标准模版STL-算法

    (5)排序相关的算法(1)常见函数

  • 排序算法

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

  • 数据结构与算法(二)

    排序算法 1.内部排序:数据记录在内存中进行排序 常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归...

  • Python知识点:常见算法的python实现

    提到排序算法,常见的有如下几种:冒泡排序、选择排序、插入排序、快速排序、堆排序、归并排序、希尔排序;查找算法最常见...

  • 排序与搜索

    排序算法: 一种能将一串数据依照特定顺序进行排列的一种算法 常见排序算法效率的比较 排序算法的实现 1. 冒泡排序...

  • 希尔排序

    希尔排序一种是很常见的排序算法,该算法在1959年由Donald Shell公布。 希尔排序的奥妙 1、希尔排序的...

  • Rust数据结构——排序算法(一)

    Rust数据结构——排序算法(一) 0x01 常见的排序算法 排序算法是数据结构中很常见的算法。如果你了解过数据结...

网友评论

      本文标题:常见的排序算法(1)

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