当前位置:网站首页>【冒泡排序以及奇数偶数排列】
【冒泡排序以及奇数偶数排列】
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 要有限制条件,否则数组就会越界。
要是对大家有所帮助的话,请帮我点个赞吧。
边栏推荐
- 成为优秀架构师必备技能:怎样才能画出让所有人赞不绝口的系统架构图?秘诀是什么?快来打开这篇文章看看吧!...
- 跨链桥协议 Nomad 遭遇黑客攻击,损失超 1.5 亿美元
- 混合型界面:对话式UI的未来
- 4 g acquisition ModbusTCP turn JSON MQTT cloud platform
- 在安装GBase 8c数据库的时候,报错显示“Host ips belong to different cluster”。这是为什么呢?有什么解决办法?
- Mysql OCP 74 questions
- 按位取反怎么运算_按位取反运算
- 4G采集ModbusTCP转JSON接MQTT云平台
- BPMN和DMN基本概念和使用案例
- 面试突击71:GET 和 POST 有什么区别?
猜你喜欢

QT with OpenGL(Shadow Mapping)(面光源篇)

跨域问题的分析

numpy

干货!一种被称为Deformable Butterfly(DeBut)的高度结构化且稀疏的线性变换

怎么在外头使用容器里php命令

投稿有礼,双社区签约博主名额等你赢!

多态详细讲解(简单实现买票系统模拟,覆盖/重定义,多态原理,虚表)

Basic using MySQL database

集成学习、boosting、bagging、Adaboost、GBDT、随机森林

Regulation action for one hundred days during the summer, more than 700 traffic safety hidden dangers were thrown out
随机推荐
ECCV2022 | RU&谷歌:用CLIP进行zero-shot目标检测!
HCIP第十七天笔记
BPMN和DMN基本概念和使用案例
STM32入门开发 介绍SPI总线、读写W25Q64(FLASH)(硬件+模拟时序)
GBase 8c分布式数据库,数据如何分布最优?
Activiti产生的背景和作用
MATLAB程序设计与应用 2.6 字符串
Spinner文字显示不全解决办法
面试突击71:GET 和 POST 有什么区别?
VL53L0X V2 laser ranging sensor collects distance data serial output
What is the IDE?Novice with which the IDE is better?
MapReduce中ETL数据清洗案例
【Star项目】小帽飞机大战(九)
STM32+OLED显示屏制作指针式电子钟
Scapy的介绍(一)「建议收藏」
509. 斐波那契数
type=“module“ 你了解,但 type=“importmap“ 你知道吗
QT with OpenGL(HDR)
完全背包问题
以网强算,中国移动算网建设激发澎湃能量