随笔分类 - 算法与数据结构
摘要:希尔排序原理讲述:在前面我们利用直接插入排序的时候,可以发现如果记录是基本有序的,那么效率的相当高。伟大的希尔也发现这个问题,但我们知道在实际中,基本有序的记录是相当少。如果没有,那我们就给他创造。如果让大量的记录呈现一种有序的状态呢?最简单的思路是分组。怎么分呢才能基本有序呢?显然直接分组,组采用直接插入排序,然后再合并不是不行的。例如:{3,5,22,9,4,6,22,3,34}分成{3,5,2}、{9,4,6}、{22,3,34};排序后是{3,5,22},{4,6,9},{3,22,34}合并后{3,5,22,4,6,9,3,22,34}显然不说我们所说的基本有序,基本有序是指小中大这
阅读全文
摘要:冒泡的基本思想是不断的比较,而选择排序的简单思路是在每一趟中记录最小或者最大,依次往下选择,实现代码如下:public class SelectSort { public static void selectSort(int[] a) { int min; for (int i = 0; i < a.length; i++) { min = i; for (int j = i + 1; j < a.length - 1; j++) { if (a[j] < a[min]) { ...
阅读全文
摘要:废话小说,看代码:import java.util.Date;public class BubbleSort { // 冒泡排序正常做法 static void bubbleSort1(int a[]) { int temp; for (int i = 0; i < a.length; i++) for (int j = 1; j < a.length - i; j++) if (a[j - 1] > a[j]) { temp = a[j]; ...
阅读全文
摘要:不管是在面试中,还是在日常中,算法的重要性不可言喻,接下来将持续更新算法:第1个:冒泡排序: 冒泡排序,大一的C语言中接触的第一个算法。主要的思路是“把大的数往前推”。时间复杂度:O(n2) demo如下” /** * 经典的冒泡排序 * */public class FirstSort { /** * @param args */ public static void main(String[] args) { int[] a = new int[] { 1, 4, 23, 7, 8, 9, 1, 20 }; int temp; for (int i = 0; ...
阅读全文

浙公网安备 33010602011771号