
数据结构和算法
TMAC-J
优快云 JAVA开发工程师
喜欢程序猿,更喜欢程序媛,哈哈~
展开
-
冒泡排序
/** * 冒泡排序(升序) * @author TMACJ * 冒泡排序有很多改良的方法,比如增加头尾指针等,本处不在讨论 */ public class BubbleSort { public static void Sort(int[] a){ for(int i=a.length;i>1;i--){ for(int j=0;j<i-1;j++){ if(a[原创 2017-04-12 16:14:55 · 237 阅读 · 0 评论 -
选择排序
/** * 选择排序 * @author TMACJ * 时间复杂度O(n^2) * 空间复杂度O(1) * 思路:从一组数中选择一个最小(大)的数放在第一个,然后再从剩下的数中选择最小(大)的数放在第二个,以此类推... */ public class SelectionSort { public static void sort(int[] a){ for(int i =原创 2017-04-12 16:39:55 · 276 阅读 · 0 评论 -
归并排序
/** * 归并排序 * @author TMACJ * */ public class MergeSort { public static void sort(int[] a, int s, int len) { int size = a.length; int mid = size / (len << 1); int c原创 2017-04-12 18:00:44 · 202 阅读 · 0 评论 -
快速排序
/** * 快速排序 * @author TMACJ * 思路:一般选取第一个数作为基数,然后从后往前比较,如果比基数小,就和基数交换,在从左往右比较,如果比基数大,就交换,直到i=j为止,此时,把这个数组按基数为分界,分成两组,在进行上述计算 * 空间复杂度 O(1) * 时间复杂度O(n^2) * Q:快排为什么这么快? * A:因为你通过观察就可以知道,当一轮排序过后,比K值大原创 2017-04-13 10:53:40 · 244 阅读 · 0 评论