A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© saghir 中级黑马   /  2015-4-13 23:10  /  669 人查看  /  14 人回复  /   4 人收藏 转载请遵从CC协议 禁止商业使用本文

/*冒泡排序*/
        public static void bubbleSort(int[] arr)
        {
                for(int x=0;x< arr.length-1;x++)//for(itn x=arr.length-1;x>0;x--)
                {
                        for(int y=0;y<arr.length-x;y++)//-x:让每一次比较的次数减少;-1让角标不越界
                        {
                        if(arr[y]>arr[y+1]
                                {
                                int temp = arr [y];
                                arr[y] = arr[y+1];
                                arr[y+1] = temp;
                                }
                }
        }
}
/*选择排序*/

public static void selectSort(int[] arr)
        {
                for(int x=0;x< arr.length-1;x++)
                {
                        for(int y=x+1;y<arr.length;y++)
                        {
                        if(arr[x]>arr[y]
                                {
                                int temp = arr [x];
                                arr[x] = arr[y];
                                arr[y+1] = temp;
                                }
                }
        }
}
/*真实开发时用*/
Arrays.sort(arr);
printArray(arr);
/*
发现无论什么排序。都需要对满足条件的元素进行位置置换,对其封装成一个函数。
*/
public static void swap(int[] arr,int a,int b)\
{
int temp =arr[a];
arr[a] = arr [b];
arr[b] = temp;
}

/*希尔排序*/
package com.zuidaima.sort;  
/**
*@author www.zuidaima.com
**/  
public class ShellSort {   
    public static <T extends Comparable<? super T>> void shellSort(T[] array, int len) {   
        int d = len;   
        while (d > 1) {   
            d = (d + 1) / 2;   
            for (int i = 0; i < len - d; i++) {   
                if (array[i + d].compareTo(array[i]) < 0) {   
                    T temp = array[i + d];   
                    array[i + d] = array[i];   
                    array[i] = temp;   
                }   
            }   
        }   
    }   

    public static void main(String[] args) {   
        Integer[] testArray = {23, 25, 12, 42, 35};   
        ShellSort.shellSort(testArray, 5);   
        System.out.println("The result is:");   
        for (Integer item : testArray) {   
            System.out.print(item);   
            System.out.print(' ');   
        }   
    }   
}   
/*快速排序*/  
void quick_sort(int s[], int l, int r)  
{  
    if (l < r)  
    {  
        //Swap(s[l], s[(l + r) / 2]); //将中间的这个数和第一个数交换 参见注1  
        int i = l, j = r, x = s[l];  
        while (i < j)  
        {  
            while(i < j && s[j] >= x) // 从右向左找第一个小于x的数  
                j--;   
            if(i < j)   
                s[i++] = s[j];  

            while(i < j && s[i] < x) // 从左向右找第一个大于等于x的数  
                i++;   
            if(i < j)   
                s[j--] = s[i];  
        }  
        s[i] = x;  
        quick_sort(s, l, i - 1); // 递归调用   
        quick_sort(s, i + 1, r);  
    }  
}  

14 个回复

正序浏览
顶一个,谢谢分享。
回复 使用道具 举报
顶!!!!!
回复 使用道具 举报
理解了最好~
回复 使用道具 举报
感谢楼主,好齐全
回复 使用道具 举报
挺不错的
回复 使用道具 举报
不错不错~~
回复 使用道具 举报
谢谢 收藏啦
回复 使用道具 举报
DxxD 中级黑马 2015-4-14 22:24:48
8#
楼主辛苦。。。
回复 使用道具 举报
不错呀,赞一个
回复 使用道具 举报
收藏了,虽然我只会前三个
回复 使用道具 举报
先Mark一下
回复 使用道具 举报
谢谢楼主分享
回复 使用道具 举报
谢谢分享!
回复 使用道具 举报
楼主辛苦                     
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马