21xrx.com
2024-11-25 19:03:30 Monday
登录
文章检索 我的文章 写文章
我最近在学习Java编程语言
2023-06-11 02:43:54 深夜i     --     --

我最近在学习Java编程语言,其中最重要的一点就是排序。Java有多种排序算法可供我们使用,我来分享一下我所学到的三种排序算法。

1. 冒泡排序

冒泡排序是一种基本排序算法,只需使用循环语句和条件语句即可实现。它的原理是比较相邻的元素,如果顺序错误就交换它们的位置,直到数组排序完成。

下面是Java代码实现冒泡排序的方式:


public static 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]){

        int temp = arr[j];

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

        arr[j+1] = temp;

      }

    }

  }

}

2. 选择排序

选择排序也是一种基本排序算法,该算法也只需要使用循环和条件语句即可实现。选择排序的原理是,遍历数组中的元素,选择其中最小的元素,将其与第一个元素交换,然后重复这个过程直到排序完成。

下面是Java代码实现选择排序的方式:


public static void selectionSort(int[] arr){

  int len = arr.length;

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

    int minIndex = i;

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

      if(arr[j] < arr[minIndex])

        minIndex = j;

      

    }

    if(minIndex != i){

      int temp = arr[i];

      arr[i] = arr[minIndex];

      arr[minIndex] = temp;

    }

  }

}

3. 快速排序

快速排序是一种常用的高效排序算法,使用分治的策略来实现。在快速排序中,我们选择一个元素作为“基准”(通常是数组中的第一个元素),然后将小于基准的元素移动到左侧,大于基准的元素移动到右侧。最后,我们递归地对左侧和右侧的子数组执行相同的操作。

下面是Java代码实现快速排序的方式:


public static void quickSort(int[] arr, int left, int right){

  if(left >= right)

    return;

  

  int i = left, j = right, pivot = arr[left];

  while(i < j){

    while(i < j && arr[j] >= pivot)

      j--;

    

    if(i < j){

      arr[i] = arr[j];

    }

    while(i < j && arr[i] <= pivot){

      i++;

    }

    if(i < j){

      arr[j] = arr[i];

    }

  }

  arr[i] = pivot;

  quickSort(arr, left, i-1);

  quickSort(arr, i+1, right);

}

总结:

以上就是我学习Java中三种排序算法的介绍,它们分别是冒泡排序、选择排序和快速排序。这些排序算法都有优缺点,我们需要根据实际情况选择合适的排序算法。我相信,通过深入学习这些基础排序算法,我们可以更好地掌握Java编程语言。

  
  

评论区

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