
数据结构与算法
IT炸雷
灯红酒绿迷人醉,谁说码农不另类
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java代码实现,快速排序
快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列 时间复杂度: O(NlogN) 最差O(N^2) 代码实现 package com.dl.paixu; import java.util.Arrays; /** * 单轴快排 * 选一个轴,把数组分成两个数组,左边比轴小,右边比轴大原创 2020-06-25 12:09:55 · 259 阅读 · 0 评论 -
java代码实现-希尔排序
希尔排序 希尔排序是升级版的插入排序。 对数组进行分组,每次步长不断缩减,最后步长为1. 本文算法为步长初始等于数组长度的一半,每次步长除以2,最后步长为1为止。 public static shellSort(int[] arr){ for(int gap=arr.leength/2;gap>0;gap/=2){ for(int i=gap;i<arr.length;i++){ for(int j=i;j>gap-1;j-=gap){ if(arr[j]<arr原创 2020-06-20 11:45:50 · 231 阅读 · 0 评论 -
java代码实现插入排序
插入排序 时间复杂度:O(n^2) 从第二个元素开始循环,把元素放在应该放的位置上 public static void main(String[] args) { int[] arr={2,34,12,25,7}; insertSort(arr); System.out.println(Arrays.toString(arr)); } public static void insertSort(int[] arr){ fo原创 2020-06-20 10:18:17 · 254 阅读 · 0 评论 -
Java代码实现冒泡排序
冒泡排序 时间复杂度:O(n^2) public class BubbleSelcct { public static void main(String[] args) { int[] arr={23,13,22,89,6,35}; bubble(arr); for (int i=0;i<arr.length;i++){ System.out.print(arr[i]+" "); } }原创 2020-06-20 10:03:12 · 522 阅读 · 0 评论 -
java代码实现--队列
队列是一个有序列表 先进先出原则 public class QueueTest{ privat Object[] data=null; private int maxsize;//队列容量 private int front;//队列头 private int last;//队列尾 QueueTest(){ this(10); } public QueueTest(int initsize){ if(initsize>=0){ data=new Object[initsize]; this.原创 2020-06-19 11:15:52 · 163 阅读 · 0 评论 -
java代码实现-数据结构-栈--先进后出
栈是一种先进后出的数据结构。 public class StackTest{ private Object[] data=null; private int maxsize=0; private top=-1; StackTest(){ this(10);//调用有参构造 } public StackTest(int initsize){ if(initsize>=0){ this.maxsize=initsize; data=new Object(maxsize); top=-1原创 2020-06-19 09:59:41 · 840 阅读 · 0 评论 -
经典排序算法
排序算法 1 插入排序:直接插入排序,二分法插入排序,希尔排序 2 选择排序: 直接选择排序,堆排序 3 交换排序: 冒泡排序,快速排序 4 归并排序 5 基数排序 直接插入排序 就是从下标为1的元素开始遍历,跟前面元素比较,插入到合适的位置 代码如下 /** * 插入排序 */ public class charu { public static void main(String[]...原创 2020-04-22 23:23:39 · 144 阅读 · 0 评论 -
单链表的增删改查--java实现
单链表的增删改查 public class MyLinked { Node first; int size; //在单链表末尾插入 public void add(Object value){ Node node=new Node(value); if(first==null){ first=node; }else { Node stemp=first; while (stemp.next!=nu...原创 2020-03-19 12:29:01 · 344 阅读 · 0 评论 -
排序算法
排序 所有代码皆是java所写 插入排序 什么是插入排序? 说白了就是把一个无序数组,从头一个一个拿元素,插入到合适的位置,符合每个元素大于左边的元素,小于右边的元素。把第一个元素看成有序的。需要n-1趟排序。 代码实现 public static void InsertSort(int[] arr){ int i,j; int n=arr.length; ...原创 2020-03-16 23:01:45 · 122 阅读 · 0 评论