交换排序的基本思想是:两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,直到没有反序的记录为止。
应用交换排序基本思想的主要排序方法有:冒泡排序和快速排序。
package test;
/**
* 冒泡排序是将数组中相邻的2个元素进行比较,然后把比较小的放到前面。这样就是升序排序;
* 把比较大的额放在前面就是降序排序。需要比较的次数是n次。
* 它适合数据规模很小的时候,而且它的效率也比较低,时间复杂度是n2。
* 稳定性上面:冒泡排序是稳定的,不会改变相同元素的相对位置。
* @author duola
*
*/
public class maoPaoSortTest {
static void maopaosort(int []a){
for(int i=0;i<a.length;i++){
for(int j=1;j<a.length-i;j++){
if(a[j-1]>a[j]){
swap(a,j-1,j);//交换位置,把小的放到前面
}
}
}
}
static void swap (int [] s,int a,int b){
int tmp=s[a];
s[a]=s[b];
s[b]=tmp;
}
public static void main(String [] args) {
int [] array={1,4,2,5,6,32,3,2};
maopaosort(array);
for(int i=0;i<array.length;i++){
System.out.print(array[i]+"\t");
}
}
}