java几种基本的排序方法,快速排序,冒泡排序,选择排序,插入排序

来源:互联网 发布:淘宝脱毛仪器有效果吗 编辑:程序博客网 时间:2024/05/16 14:25

1、快速排序

package com.entity;
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr={5,2,6,7,1};
Arrays.sort(arr);
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}

快速排序法,它只能按从小到大排序。


2、冒泡排序

它的原理,依次比较相邻的两个数,按从小到大来排序,将小数放在前面,大数放在后面。即在第一遍:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。

package com.entity;
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr={5,2,6,7,1};
for (int i = 0; i < arr.length-1; i++) {
for (int j =0; j < arr.length-1-i; j++) {//这个j-1-i要注意
if(arr[j]<arr[j+1]){//这个小于的话是从大到小排序,如果是大于是从小到大排序
int a=arr[j]; //这里相当于找了个替身
arr[j]=arr[j+1];
arr[j+1]=a;
}
}
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}

结果



3、选择排序

选择排序法是将数组的第一个数据作为最大或者最小的值,然后通过比较循环,输出有序的数组。

package com.entity;
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr={5,2,6,7,1};

//从小到大
for (int i = 0; i < arr.length-1; i++) {
int max=i; //如果max是等于i的话且下面arr[max]是>arr[j]的,则是从小到大排序
for (int j = i+1; j < arr.length; j++) {
if(arr[max]>arr[j]){
max=j;
}
if(max!=i){
int a=arr[i];
arr[i]=arr[max];
arr[max]=a;
}
}
}


//从大到小   

//for (int i = 0; i < arr.length-1; i++) {
// int max=0;
// for (int j = i+1; j < arr.length; j++) {
// if(arr[max]<arr[j]){
// max=j;
// }
// if(max!=i){
// int a=arr[i];
// arr[i]=arr[max];
// arr[max]=a;
// }
// }
// }
 


for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}



4、插入排序

插入排序是选择一个数组中的数据,通过不断的插入比较最后进行排序。

从小到大

package com.entity;
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr={5,2,6,7,1};
for(int i=1;i<arr.length;i++){
   for(int j=i;j>0;j--){
        if (arr[j]<arr[j-1]){
            int temp=arr[j-1];
            arr[j-1]=arr[j];
            arr[j]=temp;        
        }else break;
   }
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}


从大到小

  if (arr[j]<arr[j-1])这个判断改成>符号就是从大到小排序


这些排序都是最基本的。比较简单。


1 0
原创粉丝点击