java手写一个冒泡排序
时间: 2023-11-24 16:52:19 浏览: 39
以下是Java手写冒泡排序的代码实现:
```java
public static void bubbleSort(int[] arr) {
int n = arr.length;
for (int i = 0; i < n - 1; i++) {
boolean swapped = false;
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
// 如果左边的数大于右边的数,则交换,保证右边的数字最大
swap(arr, j, j + 1);
swapped = true;
}
}
// 如果没有发生交换,说明已经排好序,直接退出循环
if (!swapped) {
break;
}
}
}
// 交换元素
private static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
```
相关问题
js手写一个冒泡排序
以下是使用JavaScript手写的冒泡排序算法:
```javascript
let arr = [23, 56, 520, 920, 888, 666]; // 原始数组
function bubbleSort(arr) {
if (arr.length < 2) { // 如果数组长度小于2,直接返回原数组
return arr;
} else {
for (let i = 0; i < arr.length - 1; i++) { // 外层循环控制比较轮数
for (let j = 0; j < arr.length - 1 - i; j++) { // 内层循环控制每一轮比较次数
if (arr[j > arr[j + 1]) { // 如果前一个元素大于后一个元素,交换位置
[arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
}
}
}
return arr; // 返回排序后的数组
}
}
console.log(bubbleSort(arr)); // 打印 [23, 56, 520, 666, 888, 920]
```
这段代码使用了双重循环,外层循环控制比较轮数,内层循环控制每一轮的比较次数。通过比较相邻元素的大小,如果前一个元素大于后一个元素,则交换位置。最终得到排序后的数组。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [JS经典排序之冒泡排序和快排,入门级手写实现。](https://blog.csdn.net/Yi2008yi/article/details/122498180)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
用js手写一个冒泡排序
我可以用下面这段简单的 JavaScript 代码来实现冒泡排序:function bubbleSort(arr) {
let len = arr.length;
for (let i = 0; i < len; i++) {
for (let j = 0; j < len - 1; j++) {
if (arr[j] > arr[j + 1]) {
let temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
return arr;
}