21xrx.com
2024-12-23 02:31:03 Monday
登录
文章检索 我的文章 写文章
作为一名Java开发人员
2023-06-17 21:19:42 深夜i     --     --

作为一名Java开发人员,我在编写代码时经常需要使用排序方法来对数据进行排序,常用的Java排序方法有很多种,下面我将介绍三种常见的排序方法。

1. 冒泡排序

冒泡排序是一种基本的排序算法,其思路是从左到右比较相邻的元素大小,如果前一个数比后一个数大,就交换位置,每次交换后最大的元素就会被移到最右边。

下面是一个Java实现冒泡排序的示例代码:


public void bubbleSort(int[] arr){

  int temp;

  for(int i=0; i

    for(int j=0; j

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

        temp = arr[j];

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

        arr[j+1] = temp;

      }

    }

  }

}

2. 快速排序

快速排序是一种高效的排序算法,其思路是选定一个基准数,将序列中比基准数小的数放在左边,比基准数大的数放在右边,然后对左右两部分分别递归地进行快速排序。

下面是一个Java实现快速排序的示例代码:


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

  int i,j,key,temp;

  if(left

    i = left;

    j = right;

    key = arr[left];

    while(i

      while(i =key)

        j--;

      

      if(i

        temp = arr[i];

        arr[i] = arr[j];

        arr[j] = temp;

      }

      while(i

        i++;

      }

      if(i

        temp = arr[i];

        arr[i] = arr[j];

        arr[j] = temp;

      }

    }

    arr[i] = key;

    quickSort(arr, left, i-1);

    quickSort(arr, i+1, right);

  }

}

3. 归并排序

归并排序是一种稳定的排序算法,其思路是将数组分成两部分,对每一部分递归地进行归并排序,最后将两个有序的子数组合并成一个有序数组。

下面是一个Java实现归并排序的示例代码:


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

  if(left

    int mid = (left+right)/2;

    mergeSort(arr, left, mid);

    mergeSort(arr, mid+1, right);

    merge(arr, left, mid, right);

  }

}

public void merge(int[] arr, int left, int mid, int right){

  int[] temp = new int[arr.length];

  int i = left;

  int j = mid+1;

  int t = 0;

  while(i<=mid && j<=right){

    if(arr[i] <= arr[j]){

      temp[t++] = arr[i++];

    }else{

      temp[t++] = arr[j++];

    }

  }

  while(i <= mid){

    temp[t++] = arr[i++];

  }

  while(j <= right){

    temp[t++] = arr[j++];

  }

  t=0;

  while(left <= right){

    arr[left++] = temp[t++];

  }

}

综上所述,冒泡排序、快速排序和归并排序都是Java常见的排序方法,根据不同的排序需求可以选择不同的算法。

  
  

评论区

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