/**
* 利用递归实现数组的排序
* @param arr 一个数组
* @param stop 这是一个参数,调用此方法时,默认写0
* @return 返回一个从小到大排列的数组
* 这个方法其内部实现原理:每个数都与第一个数比较,选出最小数
*/
public int[] sortByRecursion(int [] arr,int stop){
for(int i=stop+1;i<arr.length;i++){
if(arr[stop]>arr[i]){//这里不能把条件放入for循环中去,因为外层没有for循环,所以漏掉。
int k = arr[stop];
arr[stop] = arr[i];
arr[i] = k;
}
}
//用来停止循环
if(stop ==(arr.length-1)){
return arr;
}
stop++;
return sortByRecursion(arr,stop);
}
//以上方法用循环实现:
public int [] selectSort(int [] arr){
for(int i=0;i<arr.length-1;i++){
for(int j=i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
return arr;
}
/**
* 冒泡排序
*/
public int[] bubbleSort(int [] arr){
for(int i=0;i<arr.length-1;i++){
//每次都会选出一个最大数,放在末尾
for(int j=0;j<arr.length-i-1;j++){
if(arr[j]>arr[j+1]){
int k = arr[j];
arr[j] = arr[j+1];
arr[j+1] = k;
}
}
}
return arr;
}
/**
* 插入排序
*/
public int [] insertSort(int[] arr){
int i,j,k;
for(i=1;i<arr.length;i++){
k = arr[i];
//每次都选出最小的数字
for(j=i-1;j>=0&&arr[j]>k;j--){
arr[j+1] = arr[j];
}
arr[j+1]=k;
}
return arr;
}
* 利用递归实现数组的排序
* @param arr 一个数组
* @param stop 这是一个参数,调用此方法时,默认写0
* @return 返回一个从小到大排列的数组
* 这个方法其内部实现原理:每个数都与第一个数比较,选出最小数
*/
public int[] sortByRecursion(int [] arr,int stop){
for(int i=stop+1;i<arr.length;i++){
if(arr[stop]>arr[i]){//这里不能把条件放入for循环中去,因为外层没有for循环,所以漏掉。
int k = arr[stop];
arr[stop] = arr[i];
arr[i] = k;
}
}
//用来停止循环
if(stop ==(arr.length-1)){
return arr;
}
stop++;
return sortByRecursion(arr,stop);
}
//以上方法用循环实现:
public int [] selectSort(int [] arr){
for(int i=0;i<arr.length-1;i++){
for(int j=i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
return arr;
}
/**
* 冒泡排序
*/
public int[] bubbleSort(int [] arr){
for(int i=0;i<arr.length-1;i++){
//每次都会选出一个最大数,放在末尾
for(int j=0;j<arr.length-i-1;j++){
if(arr[j]>arr[j+1]){
int k = arr[j];
arr[j] = arr[j+1];
arr[j+1] = k;
}
}
}
return arr;
}
/**
* 插入排序
*/
public int [] insertSort(int[] arr){
int i,j,k;
for(i=1;i<arr.length;i++){
k = arr[i];
//每次都选出最小的数字
for(j=i-1;j>=0&&arr[j]>k;j--){
arr[j+1] = arr[j];
}
arr[j+1]=k;
}
return arr;
}