0
点赞
收藏
分享

微信扫一扫

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);

}

}

 }

举报

相关推荐

0 条评论