public class Main{
public static void main(String[] args){
int[] array = {2,3,5,1,1,36,5};
array = QuickSort(array,0, array.length-1);
for(int i=0; i<array.length; i++)
{
System.out.println(array[i]);
}
}
static int[] BubbleSort(int[] array, int n){
for(int i=0; i<n-1; i++)
{
for(int j=0; j<n-1-i; j++)
{
if(array[j]>array[j+1])
{
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
return array;
}
//这种算法,刚开始会埋没“标杆元素”(被程序刚刚运行时找到的后面的一个小元素埋没(替换)),接下来
//从后面放到前面的那个元素,又会被前面找到的大元素替换,,就这样一直替换,一直都只会有 “标杆元素”
//被替换掉,在最后一步,再把它找回来就行
static int[] QuickSort(int[] array, int left, int right)
{
if(left < right)
{
int i=left;
int j=right;
//每次的标杆元素都选取 left 这个位置的
int x=array[i];
while(i<j)
{
//从后面找到第一个小元素,放在前面
while(i<j && array[j]>x)
{
j--;
}
if(i<j)
{
array[i]=array[j];
i++;
}
//从前面找到第一个大元素,放在后面
while(i<j && array[i]<x)
{
i++;
}
if(i<j)
{
array[j]=array[i];
j--;
}
}
array[i]=x;
QuickSort(array, left,i-1);
QuickSort(array, i+1,right);
}
return array;
}
}
两种排序算法,java
猜你喜欢
转载自blog.csdn.net/a1066196847/article/details/77451647
今日推荐
周排行