标签:算法 amp ring 写代码 循环 color 兴趣 注意 start
据说一般的笔试或面试都会考考排序,今天就试着想自己实现一把,看了原理后,发现没那么容易,又去网上找了下,发现评论都说作者的代码有问题。这更激起了我的兴趣。
遂坚持编写出来并进行了测试,应该没有问题,如有问题 希望留言评论
快速排序的理论和算法的评价就不粘贴了,网上一查一大堆,在这只写代码
1 public class QuickSort { 2 @Test 3 public void sort(){ 4 int[] a = { 5, 8, 6, 2, 7, 9, 1, 7, 3 }; 5 //int[] a = {3, 1, 2, 5, 7, 9, 6, 4, 8}; 6 7 sort(a, 0, a.length-1); 8 System.out.println(Arrays.toString(a)); 9 } 10 11 private void sort(int[] a, int start, int end) { 12 int i=start; 13 int j=end; 14 int key = a[i]; 15 int tmp; 16 while (j > i) {//向左遍历 17 while (j > i && a[j] >=key) 18 j--; 19 if (a[j] < key) { 20 tmp = a[j]; //key存在了a[j]中 21 a[j] = a[i]; 22 a[i] = tmp; 23 } 24 while (j > i && a[i] <= key) 25 i++; 26 if (a[i] > key) { 27 tmp = a[i]; 28 a[i] = a[j]; 29 a[j] = tmp; 30 } 31 } 32 if(j<end)sort(a,j+1,end); 33 if(i>start)sort(a,start,i-1); 34 } 35 36 }
说说几个我觉得注意的问题:
标签:算法 amp ring 写代码 循环 color 兴趣 注意 start
原文地址:http://www.cnblogs.com/zhxx/p/7944397.html