一、冒泡排序
把第一个元素与第二个元素比较,如果第一个比第二个大,则交换他们的位置。接着继续比较第二个与第三个元素,如果第二个比第三个大,则交换他们的位置….
我们对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样一趟比较交换下来之后,排在最右的元素就会是最大的数。
除去最右的元素,我们对剩余的元素做同样的工作,如此重复下去,直到排序完成
package org.junit;
public class PaiXu {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a={10,25,96,2,15,4,45,16,98};
paixu(a);
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
}
public static void paixu(int[]a){
for(int i=0;i<a.length-1;i++){
for(int j=0;j<a.length-1-i;j++){
if(a[j]>a[j+1]){
int jiaohuan=a[j];
a[j]=a[j+1];
a[j+1]=jiaohuan;
}
}
}
}
}
1、从数组第2个元素开始抽取元素。
2、把它与左边第一个元素比较,如果左边第一个元素比它大,则继续与左边第二个元素比较下去,直到遇到不比它大的元素,然后插到这个元素的右边。
3、继续选取第3,4,….n个元素,重复步骤 2 ,选择适当的位置插入。
首先,找到数组中最小的那个元素,其次,将它和数组的第一个元素交换位置(如果第一个元素就是最小元素那么它就和自己交换)。其次,在剩下的元素中找到最小的元素,将它与数组的第二个元素交换位置。如此往复,直到将整个数组排序。这种方法我们称之为选择排序。
package org.junit;
public class PaiXu2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int []a={12,45,46,5,15,32,4};
xuanzhe(a);
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
}
public static void xuanzhe(int []a){
for(int i=0;i<a.length-1;i++){
int min=i;
for(int j=i+1;j<a.length;j++){
if(a[min]>a[j]){
min=j;
}
}
if (min!=i){
int t;
t=a[i];
a[i]=a[min];
a[min]=t;
}
}
}
}
三、插入排序
1、从数组第2个元素开始抽取元素。
2、把它与左边第一个元素比较,如果左边第一个元素比它大,则继续与左边第二个元素比较下去,直到遇到不比它大的元素,然后插到这个元素的右边。
3、继续选取第3,4,….n个元素,重复步骤 2 ,选择适当的位置插入。
package org.junit;
import java.util.Arrays;
public class PaiXu3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a = { 12, 45, 46, 5, 15, 32, 4 };
v(a);
/*for (int i = 0; i < a.length; i++) {
System.out.println(a[i]);
插入排序
}
*/
}
public static void v(int[] a) {
for (int i = 0; i < a.length - 1; i++) {
int cu = a[i + 1];
int j = i;
while (j >= 0 && a[j] > cu) {
a[j + 1] = a[j];
j--;
a[j + 1] = cu;
}
}
System.out.println(Arrays.toString(a));
}
}