文章目录
大家好,我是晓星航。今天为大家带来的是 排列数组奇数在前偶数在后 相关的讲解!😀
public static void swap(int[] array) {int left = 0;int right = array.length - 1;while (left < right) {while (left < right && array[left] % 2 != 0){left++;}while (left < right && array[right] % 2 == 0) {right--;}int tmp = array[left];array[left] = array[right];array[right] = tmp;}
}public static void main(String[] args) {int[] arrays = {8,24,3,4,2,1,5,51,98,132,23,7};swap(arrays);System.out.println(Arrays.toString(arrays));
}
通过left和right两个假指针来实现前后奇数与偶数的互换,这里要求是奇数在前偶数在后,因此我们left找偶数,right找奇数,都找到后便进行一次互换,然后left和right继续找下一个奇数与偶数再次互换,直到left大于right就停止跳出while循环。
知识点:
1.常见的交换 - 临时变量法
int tmp = array[left];
array[left] = array[right];
array[right] = tmp;
创建一个新的空变量,使空变量暂时存储需要交换的值,从而达到我们两个变量值的交换。
2.打印输出一个数组
不能直接使用 System.out.println(arrays);
,如果这样打印的话,打印结果是arrays的地址。
正确写法:System.out.println(Arrays.toString(arrays));
补充知识点:
冒泡排序:
public static void sort(int[] array){for (int i = 0; i < array.length-1; i++) {for (int j = 0; j < array.length-1-i; j++) {if (array[j] < array[j+1]) {int tmp = array[j];array[j] = array[j+1];array[j+1] = tmp;}}}
}
最基础的排序方法,一定要熟练掌握!!!
感谢各位读者的阅读,本文章有任何错误都可以在评论区发表你们的意见,我会对文章进行改正的。如果本文章对你有帮助请动一动你们敏捷的小手点一点赞,你的每一次鼓励都是作者创作的动力哦!😘