冒泡排序
public class bubble {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a = {2,3,6,8,10,34,65,74,21,25,98,2};
int[] b = bubble(a);
System.out.print("最终结果:");
for(int temp:b ){
System.out.print(temp+" ");
}
}
static int[] bubble(int[] a){
for(int i= 0; i<a.length;i++){
for(int j= 0;j<a.length;j++){
if(a[i]>a[j]){
//交换数值
int temp = a[i];
a[i]=a[j];
a[j]=temp;
}
}
System.out.print("第"+(i+1)+"次 ");
for(int c:a){
System.out.print(c+" ");
}
System.out.println();
}
return a;
}
}
结果示例
快速排序
public class quicksort {
static int num=0;
public static void main(String[] args){
int[] a = {2,3,6,8,10,34,65,74,21,25,98,2};
int[] temp = quicksort(a,0,a.length-1);
for(int b:temp){
System.out.print(b+" ");
}
}
static int[] quicksort(int[] arr,int left,int right){
int i=left,j=right;
int key = arr[i];
while(i<j)
{
//按j--方向遍历目标数组,直到比key小的值为止
while(j>i&&arr[j]>=key)
{
j--;
}
if(i<j)
{
//arr[i]已经保存在key中,可将后面的数填入
arr[i]=arr[j];
i++;
}
//按i++方向遍历目标数组,直到比key大的值为止
while(i<j&&arr[i]<=key)
{
i++;
}
if(i<j)
{
//arr[j]已保存在arr[i]中,可将前面的值填入
arr[j]=arr[i];
j--;
}
arr[i]=key;
//输出排序过程中arr元素的变化
System.out.println("第"+(++num)+"次");
for(int b:arr){
System.out.print(b+" ");
}
System.out.println();
//递归调用,把key前面的完成排序
arr = quicksort(arr,left,i-1);
//递归调用,把key后面的完成排序
arr = quicksort(arr,j+1,right);
}
return arr;
}
}