数组排序

1)冒泡排序法

原理:两个数比较,大的沉,小的浮

过程:比较相邻的两个数,如果第二个数小就交换位置

代码如下:

private void BubbleSort(int []arr) {

int temp;

for(int i=0;i<</span>arr.length;i++){

for(int j=0;j<</span>arr.length-1;j++){

if(arr[j]>arr[j+1]){

temp=arr[j];

arr[j]=arr[j+1];

arr[j+1]=temp;

}

}

}

}

 

2)选择排序法

原理:在长度为n的无序数组中,第一次遍历n-1个数,找到最小的与第一个元素交换

第二次遍历n-2个数,找到最小的与第二个元素交换

......

n-1次遍历,找到最小的与第n-1个数交换

private void SelctionSort(int []arr) {

for(int i=0;i<</span>arr.length-1;i++){

int min = i;

for(int j=i+1;j<</span>arr.length;j++){

if(arr[j]<</span>arr[min]){

min = j;

}

}

if(min!=i){

int temp = arr[i];

arr[i]=arr[min];

arr[min]=temp;

}

}

}

 

3)插入排序法

原理:在一无序数组中,假定前n-1个数已经排好,现在将第n个数插到前面的有序数列中,使得这n个数也是排序好的,如此反复,直到全部排好

private static void insertSort(int arr[]) {

int temp;

for(int i=0;i<</span>arr.length-1;i++){

for(int j=i+1;j>0;j--){

if(arr[j] <</span>arr[j-1]){

temp=arr[j-1];

arr[j-1]=arr[j];

arr[j]=temp;

}else{

break;

}

}

}

}

 

posted @ 2016-12-02 10:55  干豆腐  阅读(181)  评论(0)    收藏  举报