21xrx.com
2024-12-23 05:23:41 Monday
登录
文章检索 我的文章 写文章
我自学Java常用排序算法总结
2023-06-10 17:37:04 深夜i     --     --

我一直对算法很感兴趣,于是自学Java中的常用排序算法。其中我掌握了冒泡排序、插入排序和快速排序。

冒泡排序是一种简单的排序算法,大致思路是将数据按照大小关系依次比较,然后将较大的数据往后冒泡。这里是Java代码例子:


public void bubbleSort(int[] arr) {

  int len = arr.length;

  for (int i = 0; i < len - 1; i++) {

    for (int j = 0; j < len - i - 1; j++) {

      if (arr[j] > arr[j+1]) {

        swap(arr, j, j+1);

      }

    }

  }

}

插入排序也是一种简单且高效的算法,它的思路是将待排序数据分成两部分,一部分已经排好序,另一部分待排序,将待排序的数据依次插入已经排好序的数据中。这里是Java代码例子:


public void insertSort(int[] arr) {

  int len = arr.length;

  for (int i = 1; i < len; i++) {

    int j = i - 1;

    int current = arr[i];

    while (j >= 0 && arr[j] > current) {

      arr[j+1] = arr[j];

      j--;

    }

    arr[j+1] = current;

  }

}

快速排序是一种非常常用的排序算法,它的大致思路是利用分治思想将待排序数据分成较小的部分进行排序,最终得到完整有序的序列。这里是Java代码例子:


public void quickSort(int[] arr, int begin, int end) {

  if (begin >= end) return;

  int pivot = partition(arr, begin, end);

  quickSort(arr, begin, pivot-1);

  quickSort(arr, pivot+1, end);

}

private int partition(int[] arr, int begin, int end) {

  int pivot = arr[end];

  int i = begin - 1;

  for (int j = begin; j < end; j++) {

    if (arr[j] <= pivot) {

      i++;

      swap(arr, i, j);

    }

  }

  swap(arr, i+1, end);

  return i+1;

}

以上就是我自学Java常用排序算法的总结,关键词为:Java、排序算法、代码例子。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复