---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
JAVA中在运用数组进行排序功能时,一般有四种方法:快速排序法、冒泡法、选择排序法、插入排序法。
快速排序法主要是运用了Arrays中的一个方法Arrays.sort()实现。
【1】快速排序法
import java.util.Arrays;
public class Test2
{
public static void main(String[] args)
{ int[] a={5,4,2,4,9,1};
Arrays.sort(a); //进行排序
for(int i: a)
{
System.out.print(i);
}
}
}
【2】冒泡法
public static int[] bubbleSort(int[] args)//冒泡排序算法
{
for(int i=0;i<args.length-1;i++){
for(int j=i+1;j<args.length;j++){
if (args[i]>args[j]){
int temp=args[i];
args[i]=args[j];
args[j]=temp;
}
}
}
return args;
}
【3】选择排序法
在简单选择排序过程中,所需移动记录的次数比较少。最好情况下,即待排序记录初始状态就已经是正序排列了,则不需要移动记录。最坏情况下,即待排序记录初始状态是按逆序排列的,则需要移动记录的次数最多为3(n-1)。简单选择过程中需要进行的比较次数与初始状态下待排序的记录序列的排列情况无关。当i=1时,需进行n-1次比较;当i=2时,需进行n-2次比较;依次类推,共需要进行的比较次数是∑ =(n-1)+(n-2)+…+2+1=n(n-1)/2,即进行比较操作的时间复杂度为O(n2)。这种方法其实是对冒泡排序的深入。
public static int[] selectSort(int[] args){//选择排序算法
for (int i=0;i<args.length-1 ;i++ ){
int min=i;
for (int j=i+1;j<args.length ;j++ )
{
if (args[min]>args[j])
{
min=j;
}
}
if (min!=i)
{
int temp=args[i];
args[i]=args[min];
args[min]=temp;
}
}
return args;
}
【4】插入排序法
包括:直接插入排序,二分插入排序(又称折半插入排序),链表插入排序,希尔排序(又称缩小增量排序)。
public static int[] insertSort(int[] args){//插入排序算法
for(int i=1;i<args.length;i++)
{
for(int j=i;j>0;j--){
if (args[j]<args[j-1]){
int temp=args[j-1];
args[j-1]=args[j];
args[j]=temp;
}
else break;
}
}
return args;
}
在毕向东老师的视频里主要强调了,快速排序法与冒泡排序法这两种方法,因此需要深刻的理解与掌握。
学习心得:要理解快速排序法与冒泡排序法各自的工作原理,各自有什么优缺点。
---------------------- ASP.Net+Unity开发、 .Net培训、期待与您交流! ----------------------