快速排序和冒泡排序

快速排序

首先要找出一个比较的值,用这个值分别与左右的数值进行比较。

int i=0 ,j=9  int x =a[i]

如: 取第一个值,我们先与最右面的数比较,如过右面的比它大,就j--

  然后 a[i++] = a[j];

  在让值比较左面的值,如果左面的比它小,就i++

    a[j--] = a[i];

   如果 i == j 的时候,a[i] = x

  然后重复前面的代码,也就是递归

代码:

 1 public class QuickSort1 {
 2     public void quicksort(int[] s, int start, int end) {
 3         int x = s[start];
 4         int i = start;
 5         int j = end;
 6         if (start < end) {
 7             while (i < j) {
 8                 while (i < j && s[j] >= x)//从右向左找第一个大于x的数  
 9                     j--;
10                 if (i < j) {
11                     s[i++] = s[j];
12                 }
13 
14                 while (i < j && s[i] < x) {// 从左向右找第一个小于等于x的数  
15                     i++;
16                 }
17 
18                 if (i < j) {
19                     s[j--] = s[i];
20                 }
21             }
22 
23                 s[i] = x;
24                 if (i - 1 > start)   
25                 quicksort(s, start, i - 1);
26               if (i + 1 < end) 
27                 quicksort(s, i + 1, end);
28         }
29     }
30 
31     public static void main(String[] args) {
32         int[] a = { 100, 40, 60, 83, 34, 11, 56, 0 };
33         new QuickSort1().quicksort(a, 0, a.length - 1);
34         for (int i = 0; i < a.length; i++) {
35 
36             System.out.print(a[i]+",");
37         }
38     }
39 
40 }

 

 

  冒泡排序:

  取出其中的一个数,分别与所有的数进行比较

 

 1 public class Bubble {
 2     public void sort(int[] s){
 3         int temp = 0;
 4         for(int i=0; i< s.length; i++){
 5             for(int j = i ; j<=s.length-1;j++){
 6                 if(s[i]>s[j]){
 7                 temp = s[i];
 8                 s[i] = s[j];
 9                 s[j] = temp;
10                 }
11 //                for(int j = 0 ; j<s.length-i-1;j++){    
12 //                if(s[j]>s[j+1]){
13 //                temp = s[j];
14 //                s[j] = s[j+1];
15 //                s[j+1] = temp;
16 //                }
17             }
18         }
19     }
20     
21     
22     public static void main(String[] args){
23         int[] a ={100,40,60,87,34,11,56,0};
24         new Bubble().sort(a);
25         for (int i = 0; i < a.length; i++) {
26 
27             System.out.print(a[i]+",");
28         }
29     }
30 }

 

posted @ 2015-07-21 17:05  哎呦喂哈  阅读(196)  评论(0)    收藏  举报