Java 排序

1. 冒泡排序

相邻的元素两两比较,大的往后放,第一次完毕之后,最大值出现了最大索引处。


冒泡排序

<b>外层循环决定比较几大次,内层循环决定了数组内元素之间的比较</b>

需求:
数组元素:{24,69,80,57,13}
请对数组元素进行排序

<pre>
public static void bubbleSort(int[] arr){
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;
}
}
}
}
</pre>

要注意循环中数组的长度的变化第一个length-1是因为只需要比较四次,第二个length-1是为了防止数组的下标越界(arr[j+1),length-i是对应的arr[j]比较的次数的递减。

2. 选择排序

从0索引开始,依次和后面的元素标胶,小的往前方,第一次完毕后,最小值出现在了最小索引处。


选择排序

<b>外层循环决定比较几大次,内层循环决定了数组内元素之间的比较</b>

需求:
数组元素:{24,69,80,57,13}
请对数组元素进行排序
<pre>
public static void selectSort(int[] arr){
for (int i = 0; i < arr.length-1; i++) {
for (int j = i+1; j < arr.length; j++) {
if(arr[i]>arr[j]){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
</pre>

注意外层循环只需要比较length-1次,因为最后一次不需要比较了,用一个索引位置上的元素和其他位置的元素比较,所以内层循环要从第二个位置开始。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 刚开始学习Java,大家都会学习排序算法,但是只有理解了排序的方法,才能更好的将其转换为代码。刚开始学习我也为了理...
    朽木丿碎风阅读 516评论 1 1
  • 转载自:https://egoistk.github.io/2016/09/10/Java%E6%8E%92%E5...
    chad_it阅读 1,011评论 0 18
  • 01奇数求和练习 A: 奇数求和练习a: 题目分析为了记录累加和的值,我们需要定义一个存储累加和的变量我们要获取到...
    Tyihou阅读 554评论 0 0
  • 俄罗斯导演萨里·奥德赛耶的新作《暗杀游戏》 这档备受全球瞩目电视真人秀名叫“MAFIA”,由11位怀揣不同目的,来...
    苒恋嫣凉阅读 459评论 2 1
  • 早上醒来看朋友圈,看到先生发图将两个人的车并排照了一张,还发文写了一句,“常伴路上,彼此安好。”鼻子顿时发酸,迅速...
    小花fayer阅读 356评论 13 3