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

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])这个判断改成>符号就是从大到小排序

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值