java小算法—常见的排序算法(冒泡排序,选择排序,插入排序)
Posted CSBase
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java小算法—常见的排序算法(冒泡排序,选择排序,插入排序)相关的知识,希望对你有一定的参考价值。
1.冒泡排序
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
例如:数字长度为7,下标0-6,第一轮比较0-5 第二轮i+1-6
int m[] = new int[]{12, 0, 23, 111, 0, 24, 123, 89, 3, 4, 21};
int n = m.length;
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
int temp;
if (m[i] > m[j]) {
temp = m[i];
m[i] = m[j];
m[j] = temp;
}
}
}
2.选择排序(和冒泡差不多,也是两轮n-1,n 只不过冒泡排序比的是大小直接排序,选择排序先比较下标再交换数据)
将数组的第一个数据作为最大或者最小的值,然后通过比较循环,输出有序的数组。
int m[] = new int[]{12, 0, 23, 111, 0, 24, 123, 89, 3, 4, 21};
int n = m.length;
for (int i = 0; i < n - 1; i++) {
int min = i;
for (int j = i + 1; j < n; j++) {
if (m[min] > m[j]) {
min = j;
}
}
if (min != i) {
int temp;
temp = m[min];
m[min] = m[i];
m[i] = temp;
}
}
3.插入排序
选择一个数组中的数据,通过不断的插入比较最后进行排序
int m[] = new int[]{12, 0, 23, 111, 0, 24, 123, 89, 3, 4, 21};
int n = m.length;
for (int i = 1; i < n; i++) {
for (int j = i; j > 0; j--) {
if (m[j - 1] > m[j]) {
int temp;
temp = m[j - 1];
m[j - 1] = m[j];
m[j] = temp;
}
}
}
以上是关于java小算法—常见的排序算法(冒泡排序,选择排序,插入排序)的主要内容,如果未能解决你的问题,请参考以下文章
Java数据结构和算法总结-冒泡排序选择排序插入排序算法分析