Algrothm_Sort_QuickSort

/*
稳定性:[不稳定](不稳定的算法结构:如果有两个相同的元素5,会导致第一个5和第二个5的位置发生改变)
*/
package seven_happy;


public class Code_Demo {
/**
* author: Ain 
* model: write a code about MergeSort 
* date:2016-3-9
*/
// 定义变量值
private static final int[] a = { 3, 0, 1, 8, 7, 2, 5, 4, 9, 6 };
private static final String SORT_AGO = "快速排序前的顺序为:";
private static final String SORT_AFTER = "快速排序后的顺序为:";


// 主程序入口
public static void main(String[] args) {
// 调用快速排序算法
QuickSort(a, 1, 10);


// 排序前的数组中的数据顺序
System.out.print(SORT_AGO);
System.out.print("  3  0  1  8  7  2  5  4  9  6 ");
// 排序后的数组中的数据顺序
System.out.println(" ");
System.out.print(SORT_AFTER);
for (int i = 1; i <= 10; i++) {
System.out.print("  " + a[i - 1]);
}
}


public static int Partition(int a[], int p, int r) {
// 快速排序
int x = a[r - 1];
int i = p - 1;
int temp;


for (int j = p; j <= r - 1; j++) {
if (a[j - 1] <= x) {
// swap(a[j-1],a[i-1]);
i++;
temp = a[j - 1];
a[j - 1] = a[i - 1];
a[i - 1] = temp;
}
}


// swap(a[r-1,a[i+1-1]);
temp = a[r - 1];
a[r - 1] = a[i + 1 - 1];
a[i + 1 - 1] = temp;
return i + 1;
}


public static void QuickSort(int a[], int p, int r) {
if (p < r) {
int q = Partition(a, p, r);
QuickSort(a, p, q - 1);
QuickSort(a, q + 1, r);
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值