一.冒泡排序
冒泡排序的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再大于第2个数),将小数放前,大数放后,一直比较到最小数前的一对相邻数,将小数放前,大数放后,第二趟结束,在倒数第二个数中得到一个新的最小数。如此下去,直至最终完成排序。
由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。
用二重循环实现,外循环变量设为i,内循环变量设为j。外循环重复9次,内循环依次重复9,8,...,1次。每次进行比较的两个元素都是与内循环j有关的,它们可以分别用a[j]和a[j+1]标识,i的值依次为1,2,...,9,对于每一个i, j的值依次为1,2,...10-i。
public class BubbleSort {
public static void sort(int[] date) {
int temp;
for (int i = 0; i < date.length; i++) {
for (int j = date.length - 1; j > i; j--) {
if(date[i]>date[j]){
temp = date[i];
date[i]=date[j];
date[j]=temp;
}
}
}
}
public static void main(String[] args) {
int[] a ={1,4,5,3,9,22,22,34,6};
sort(a);
for(int a1 : a){
System.out.print(a1+"\t");
}
}
}
二.选择排序
选择排序
//原理:每次都找到当次最大的数,按大小顺序依次放入数组相应位置
//比如:第一次先找到最大的数并记下其位置,如果其不在数组第一位,
//则将其与第一位交换,使最大数置于第一位
//第二次再循环查找第二大的数并记下其位置,如果其不在数组第二位,
//则将其与第二位交换,使最大数置于第二位
//依次类推.........................................
//第i次再循环查找第i大的数并记下其位置,如果其不在数组第 i位,
//则将其与第 i位交换,使最大数置于第 i位
public class SelectSort {
public static void sort(int[] date){
int max = 0;
int tmp = 0;
for(int i = 0; i<date.length; i++){
max = i;
for(int j = i+1; j<date.length; j++){
if(date[max]<date[j]){
max = j;
}
}
if(max!=i){
tmp = date[i];
date[i] = date[max];
date[max]=tmp;
}
}
}
public static void main(String[] args) {
int[] a ={1,4,5,3,9,22,22,34,6};
sort(a);
for(int a1 : a){
System.out.print(a1+"\t");
}
}
}
分享到:
相关推荐
java 实现归并排序,有代码实现,复杂度分析,基本步骤,适合初学者吧,
主要介绍了Java实现拖拽列表项的排序功能,非常不错,具有参考借鉴价值,需要的朋友可以参考下
实现合并排序,插入排序,希尔排序,快速排序,冒泡排序,桶排序算法的java实现。
提供了Java实现几种常见排序方法和原理介绍
堆排序7.java 使用java实现的堆排序堆排序7.java 使用java实现的堆排序堆排序7.java 使用java实现的堆排序堆排序7.java 使用java实现的堆排序堆排序7.java 使用java实现的堆排序堆排序7.java 使用java实现的堆排序堆...
Java实现六种常用排序 并用多线程进行速度比较(其实意义不大) 含有代码
快速排序算法的Java实现。下载后把Package信息稍作修改即可运行。
Java ip 地址排序Java ip 地址排序Java ip 地址排序Java ip 地址排序
java 快速排序 折半查找的界面实现 (递归与分治法)
Java实现堆排序不是C,Java实现堆排序不是C,Java实现堆排序不是C,Java实现堆排序不是C
Java实现计数排序不是C,Java实现计数排序不是C,Java实现计数排序不是C
Java排序算法实现 Java排序算法实现 Java排序算法实现
java实现的冒泡排序 很简单一看就懂
本文实例讲述了Java编程实现中英混合字符串数组按首字母排序的方法。分享给大家供大家参考,具体如下: 在Java中对于字符串数组的排序,我们可以使用Arrays.sort(String[])方法很便捷的进行排序。例如: String[]...
堆排序12.java 使用java代码实现堆排序12.java 使用java代码实现堆排序12.java 使用java代码实现堆排序12.java 使用java代码实现堆排序12.java 使用java代码实现堆排序12.java 使用java代码实现堆排序12.java 使用...
java实现的插入排序 都是静态的例子 很简单
堆排序10.java 使用java来实现堆排序10.java 使用java来实现堆排序10.java 使用java来实现堆排序10.java 使用java来实现堆排序10.java 使用java来实现堆排序10.java 使用java来实现堆排序10.java 使用java来实现堆...
说明: 可实现:构造树,插入,查找,删除. 通过模式的选择,可以插入值相等的点.但是不建议使用.
JAVA实现插入排序,简单演示
java中实现快速排序算法。随机产生几个数然后对其进行排序