public class Choose{
public static void main(String[] args){
int[] arr = {4,6,7,3,1,6};
Select a = new Select();
a.sort1(arr);
System.out.println("选择排序后:");
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]);
}
a.sort2(arr);
System.out.println("");
System.out.println("冒泡排序后:");
for(int j=0;j<arr.length;j++){
System.out.print(arr[j]);
}
}
}
/**
//*选择排序基本思想:在每次循环过程中,选出一个最小值,指针依次下移。第一步:选择一个在
小的值放在数组0的位置上,第二次选择//第*二小的放在数组下标为为1的位置上
*/
class Select{
public static void sort1(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 static void sort2(int arr[]){
for(int i=0;i<arr.length;i++){
for(int j=i;j<arr.length-i-1;j++){
if(arr[j]>arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
}
当然java中也可以进行快速排序,不过建议自己不要写快速排序,因为java提供了很多类库,直接调用就行省出了很多写代码的必要。对于排序的方法,直接调用sort方法即可。
在对数组操作中,要注意的问题有角标越级问题,在写排序方法中,可以直接还回数组,这时候方法的还回值类型要设置成数组类型。下面以数组还回值类型为例写一下简单的代码。
class A{
public static int[] sort1(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 class Back{
public static void main(String[] arg){
A a = new A();
int[] arr ={4,6,1,3,9};
System.out.println(a.sort1(arr));
}
}