当前位置:网站首页>【冒泡排序以及奇数偶数排列】
【冒泡排序以及奇数偶数排列】
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
要有限制条件,否则数组就会越界。
要是对大家有所帮助的话,请帮我点个赞吧。
边栏推荐
- Skills required to be a good architect: How to draw a system architecture that everyone will love?What's the secret?Come and open this article to see it!...
- MATLAB Programming and Applications 2.6 Strings
- 请问应该用什么关键字将内容主题设置为 dark 呢
- Activiti产生的背景和作用
- 按位取反怎么运算_按位取反运算
- 57.【全排列的详细分析】
- LeetCode_二分搜索_简单_367.有效的完全平方数
- 媒体查询代码
- 消费者认可度较高 地理标志农产品为啥“香”
- STM32+OLED显示屏制作指针式电子钟
猜你喜欢
随机推荐
Mysql OCP 73题
Boolean 与numeric 无法互转
历史拉链数据处理有人做过吗
ScrollView嵌套RecyclerView滚动冲突
深度学习100例——卷积神经网络(CNN)实现服装图像分类
4 g acquisition ModbusTCP turn JSON MQTT cloud platform
507. 完美数
servlet生命周期详解--【结合源码】
Matplotlib
完全背包问题的思路解析
三大产品力赋能欧萌达OMODA5
机器学习概述
【Star项目】小帽飞机大战(九)
优炫数据库在linux平台下服务启动失败的原因
Mysql OCP 74 questions
type="module" you know, but type="importmap" you know
文旅部:进一步加强旅游景区暑期安全管理工作
成为优秀架构师必备技能:怎样才能画出让所有人赞不绝口的系统架构图?秘诀是什么?快来打开这篇文章看看吧!...
Apache Doris系列之:数据模型
4G采集ModbusTCP转JSON接MQTT云平台