21xrx.com
2024-12-23 06:39:12 Monday
登录
文章检索 我的文章 写文章
我学习Java常用排序的经验
2023-06-13 00:17:36 深夜i     --     --

作为一名Java初学者,我深知在编程中排序算法的重要性。因此,我决定专门学习Java常用排序算法,并在这里分享我的经验。

首先,我了解了Java中常见的十大排序算法,包括冒泡排序、插入排序、选择排序、快速排序、归并排序、希尔排序、堆排序、计数排序、桶排序以及基数排序。其中,我选择了几种常用的排序算法进行学习和实践。

其次,我写下了以下代码示例来展示Java中冒泡排序、选择排序和快速排序的实现过程:


// 冒泡排序

public void bubbleSort(int[] arr) {

  for (int i = 0; i < arr.length - 1; i++) {

    for (int j = 0; j < arr.length - i - 1; j++) {

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

        int temp = arr[j];

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

        arr[j+1] = temp;

      }

    }

  }

}

// 选择排序

public void selectionSort(int[] arr) {

  for (int i = 0; i < arr.length - 1; i++) {

    int minIndex = i;

    for (int j = i + 1; j < arr.length; j++) {

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

        minIndex = j;

      

    }

    int temp = arr[i];

    arr[i] = arr[minIndex];

    arr[minIndex] = temp;

  }

}

// 快速排序

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

  if (left < right) {

    int pivot = partition(arr, left, right);

    quickSort(arr, left, pivot - 1);

    quickSort(arr, pivot + 1, right);

  }

}

public int partition(int[] arr, int left, int right) {

  int pivot = arr[left];

  while (left < right) {

    while (left < right && arr[right] >= pivot)

      right--;

    

    arr[left] = arr[right];

    while (left < right && arr[left] <= pivot) {

      left++;

    }

    arr[right] = arr[left];

  }

  arr[left] = pivot;

  return left;

}

最后,我总结出排序算法的几个关键点:时间复杂度、稳定性、适用场景等。对于不同的场景,我们需要根据实际情况选择合适的算法。

通过学习Java常用排序算法,我对Java的基础知识有了更深入的了解,也提高了自己对编程的理解。

  
  

评论区

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