码迷,mamicode.com
首页 > 编程语言 > 详细

一天一个Java基础——排序

时间:2016-03-29 23:58:10      阅读:411      评论:0      收藏:0      [点我收藏+]

标签:

一天一个系列的第一篇,看看自己能否坚持下去,加油!

 

冒泡排序与快速排序

 

冒泡排序,人生中第一次面试,nice的考官问我能不能默写下来

 

快速排序,感觉高大上,分治思想,必学

 

 1 package One;
 2 
 3 public class Test_sort {
 4 
 5     public static void main(String[] args) {
 6         int[] a = { 2, 9, 5, 4, 8, 1 };
 7         // sort(bubble_sort);
 8         quick_sort(a, 0, a.length - 1);
 9         for (int i = 0; i < a.length; i++) {
10             System.out.print(a[i] + " ");
11         }
12     }
13 
14     // 冒泡排序
15     public static int[] bubble_sort(int[] a) {
16         // 设置判断,进行优化
17         // 如果某次遍历中没有发生交换,那么就不用再进行下去,因为排序已完成
18         boolean ac = true;
19         for (int k = 1; k < a.length & ac; k++) {
20             ac = false;
21             for (int i = 0; i < a.length - 1; i++) {
22                 if (a[i] > a[i + 1]) {
23                     int temp = a[i];
24                     a[i] = a[i + 1];
25                     a[i + 1] = temp;
26                     ac = true;
27                 }
28             }
29         }
30         return a;
31     }
32 
33     // 快速排序
34     public static int[] quick_sort(int s[], int l, int r) {
35         if (l < r) {
36             // Swap(s[l], s[(l + r) / 2]); //将中间的这个数和第一个数交换 参见注1
37             int i = l, j = r, x = s[l];
38             while (i < j) {
39                 // 从右向左找第一个小于x的数
40                 while (i < j && s[j] >= x)
41                     j--;
42                 if (i < j)
43                     s[i++] = s[j];
44 
45                 // 从左向右找第一个大于等于x的数
46                 while (i < j && s[i] < x)
47                     i++;
48                 if (i < j)
49                     s[j--] = s[i];
50             }
51             s[i] = x;
52             quick_sort(s, l, i - 1); // 递归调用 从右至左
53             quick_sort(s, i + 1, r); // 从左至右
54         }
55         return s;
56     }
57 }

 

一天一个Java基础——排序

标签:

原文地址:http://www.cnblogs.com/zhengbin/p/5335095.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!