当前位置: 首页 > news >正文

用Java实现常见排序算法详解

排序算法是计算机科学中最基础也是最重要的算法之一。本文将介绍几种常见的排序算法,并用Java语言实现它们。

一、排序算法概述

排序算法可以分为两大类:

  1. 比较类排序:通过比较来决定元素间的相对次序,其时间复杂度不能突破O(nlogn)
  2. 非比较类排序:不通过比较来决定元素间的相对次序,可以突破基于比较排序的时间下界

本文将重点介绍以下几种排序算法:

  • 冒泡排序
  • 选择排序
  • 插入排序
  • 快速排序
  • 归并排序
  • 堆排序

二、各排序算法实现

1. 冒泡排序(Bubble Sort)

基本思想:重复地走访要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。

public class BubbleSort {public static void bubbleSort(int[] arr) {int n = arr.length;for (int i = 0; i < n - 1; i++) {for (int j = 0; j < n - i - 1; j++) {if (arr[j] > arr[j + 1]) {// 交换arr[j]和arr[j+1]int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}}public static void main(String[] args) {int[] arr = {64, 34, 25, 12, 22, 11, 90};bubbleSort(arr);System.out.println("排序后的数组:");for (int num : arr) {System.out.print(num + " ");}}
}

时间复杂度:O(n²)

2. 选择排序(Selection Sort)

基本思想:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后再从剩余未排序元素中继续寻找最小(大)元素,放到已排序序列的末尾。

public class SelectionSort {public static void selectionSort(int[] arr) {int n = arr.length;for (int i = 0; i < n - 1; i++) {int minIndex = i;for (int j = i + 1; j < n; j++) {if (arr[j] < arr[minIndex]) {minIndex = j;}}// 交换找到的最小值和当前元素int temp = arr[minIndex];arr[minIndex] = arr[i];arr[i] = temp;}}public static void</

相关文章:

  • java中合并音频
  • C#使用ExcelDataReader高效读取excel文件写入数据库
  • 【Qt】Qt控件
  • 三星MZQL2960HCJR-00BAL高性能固态硬盘控制器SSD云计算和高端存储专用 电子元器件解析
  • 【为什么InnoDB用B+树?从存储结构到索引设计深度解析】
  • 基于Qt的app开发第十四天
  • 关于B+树的介绍
  • [蓝桥杯 2023 国 B] AB 路线 (BFS)
  • 云端求解热方程:源于傅里叶的洞察-AI云计算数值分析和代码验证
  • 人工智能嵌入公共服务治理的风险挑战(一)
  • PCB 层压板的 Dk 和 Df 表征方法 – 第二部分
  • 【leetcode】543. 二叉树的直径
  • OceanBase (DBA)一面面经
  • go语言快速入门
  • QCustomPlot 中实现拖动区域放大‌与恢复
  • Android S - 重复播放按键音(上下左右、OK)
  • 算法导论第四章:分治策略的艺术与科学
  • 北京大学肖臻老师《区块链技术与应用》公开课:08-BTC-比特币挖矿
  • HTML5实现好看的邀请函网页源码
  • Linux --基础IO
  • 做的最少的网站/网站做优化好还是推广好
  • 作文网推荐/站长工具seo综合
  • 哪些网站可以做招商广告/生成关键词的软件免费
  • 在因特网上建设网站可选择的方案/湖南seo公司
  • 大连开发区一中/搜索引擎优化的策略主要有
  • 网站要多少钱 优帮云/百度账号登录入口