当前位置:网站首页>【冒泡排序以及奇数偶数排列】
【冒泡排序以及奇数偶数排列】
2022-08-03 10:49:00 【DJL_new_life】
点击可进行跳转至
冒泡排序
将一个乱序的数组进行排序,默认排升序
假设数组有n个元素,每进行一次遍历,就会把一个元素放在它的最终位置,它要到达最终位置,就要和每个元素进行比较,寻找那个最大的值,放在末尾,此时最后这个位置已经有了它的归属,当排序下个元素时,就无需遍历已经有归属的位置。
详细代码附上:(内含注释)
import java.util.Arrays;
public class Test2 {
public static void main(String[] args) {
int[] arr = {
3,4,5,1,2};
bubbleSort(arr);
for(int i : arr){
System.out.println(i);
}
}
public static void bubbleSort(int[] arr){
//需要将几个元素放到他们应该在的位置,
// 减1的 作用是:当还剩下一个数的时候,其他数都已经排序好,这个数就在它该在的位置
for (int i = 0; i < arr.length-1; i++) {
//在放一个元素的时候,需要遍历数组进行比较
for (int j = 0; j < arr.length-1-i; j++) {
if(arr[j] > arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
}
数组的数字排列问题
给定一个整型数组,将所有的偶数放在前半部分,将所有的奇数放在后半部分
例如:
{1,2,3,4,5,6,7,8}
调整后得到
{8,2,6,4,5,3,7,1}
思路:双引用,从前向后寻找到第一个奇数停止,从后向前寻找到第一个偶数停止,把这两个数一换就可以了。
package Array;
/** * 给定一个整型数组,将所有的偶数放在前半部分,将所有的奇数放在后半部分 */
public class OddEven {
public static void main(String[] args) {
int[] arr = {
1,2,3,4,5,6,7,8};
oddEven(arr);
for (int i : arr){
System.out.println(i);
}
}
public static void oddEven(int[] arr){
int left = 0;
int right = arr.length-1;
while (left < right){
while (left < right && arr[left] % 2 == 0){
//找奇数
left++;
}
while (left < right && arr[right] % 2 != 0){
//找偶数
right--;
}
int temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
left++;
right--;
}
}
}
看到上面找奇数和找偶数的判断条件时,可能会有疑惑?
为什么要加left<right
呢?
是因为若数组内部全是奇数,或者全是偶数,left
和 right
要有限制条件,否则数组就会越界。
要是对大家有所帮助的话,请帮我点个赞吧。
边栏推荐
- Mysql OCP 73 questions
- Guys, I have a problem: My source mysql has a table that has been writing to, I use mysql cdc connec
- Analysis of the idea of the complete knapsack problem
- 一文了解,从RS485传感器到物联网关到云平台过程
- 简述设计的意义是什么_定义和概念的最大区别
- Scapy的介绍(一)「建议收藏」
- 集成学习、boosting、bagging、Adaboost、GBDT、随机森林
- This article understands the process from RS485 sensor to IoT gateway to cloud platform
- 8 月数据库排行榜:Oracle 分数大跌,MySQL 上涨最多
- 文旅部:进一步加强旅游景区暑期安全管理工作
猜你喜欢
go——并发编程
成为优秀架构师必备技能:怎样才能画出让所有人赞不绝口的系统架构图?秘诀是什么?快来打开这篇文章看看吧!...
程序员架构修炼之道:软件架构基本概念和思维
袋鼠云思枢:数驹 DTengine,助力企业构建高效的流批一体数据湖计算平台
APENFT FOUNDATION官宣2022艺术梦想基金主题征集
Why is the new earth blurred, in-depth analysis of white balls, viewing pictures, and downloading problems
科普大佬说 | 黑客帝国与6G有什么关系?
3分钟实现内网穿透(基于ngrok实现)
numpy
阿里本地生活全域日志平台 Xlog 的思考与实践
随机推荐
深入解析分布式文件系统的一致性的实现
Mysql OCP 75题
Basic using MySQL database
图新地球为什么很模糊,白球、看图、下载问题深度剖析
训练双塔检索模型,可以不用query-doc样本了?明星机构联合发文
程序员架构修炼之道:如何设计出可持续演进的系统架构?
STM32+OLED显示屏制作指针式电子钟
Mysql OCP 75 questions
多态详细讲解(简单实现买票系统模拟,覆盖/重定义,多态原理,虚表)
8 月数据库排行榜:Oracle 分数大跌,MySQL 上涨最多
GBase 8c分布式数据库,数据如何分布最优?
历史拉链数据处理有人做过吗
type=“module“ 你了解,但 type=“importmap“ 你知道吗
With strong network, China mobile to calculate excitation surging energy network construction
Leecode-SQL 1667. 修复表中的名字
白帽黑客与留守儿童破壁对“画”!ISC、中国光华科技基金会、光明网携手启动数字安全元宇宙公益展
出色的移动端用户验证
This article understands the process from RS485 sensor to IoT gateway to cloud platform
袋鼠云思枢:数驹 DTengine,助力企业构建高效的流批一体数据湖计算平台
一文了解,从RS485传感器到物联网关到云平台过程