王道排序算法Java实现
王道排序算法Java实现
想去大厂的JAVAer
这个作者很懒,什么都没留下…
展开
-
简单选择排序(王道书思想Java实现)
简单选择排序,每趟排序都是从左到右,从小到大选择出一个元素放在其正确排序的位置上,n-1趟过后整个数组排序结束时间复杂度为O(n2)空间复杂度为O(1)简单选择排序是一种不稳定的排序public void SelectSort(int[] nums,int n) { if(n==0) return null; for(int i=0;i<n-1;i++){ //无需进行第n次 int min=i;原创 2021-08-30 19:19:23 · 107 阅读 · 0 评论 -
快速排序(王道书思想Java实现)
***快速排序是所有内部排序算法中平均性能最优的排序算法***因而这个算法无论在考试还是面试找工作中都相当相当重要快排的平均时间复杂度为O(nlog2n),最差时间复杂度为O(n2)快排的平均空间复杂度为O(log2n),最差空间复杂度为O(n)快排是不稳定的//Java快排实现private void QuickSort(int A[],int low,int high){ //设n为数组A的长度,当初始low设置为0,high设置为n-1时,可将整个数组排序 if.原创 2021-08-29 17:39:34 · 365 阅读 · 0 评论 -
冒泡排序(王道书思想Java实现)
这篇和书上代码几乎没有差别,只是增加了变量的定义类型以及swap函数的具体实现public void BubbleSort(int[] nums,int n) { for(int i=0;i<n-1;i++){ //最多只需经历n-1次冒泡,最大元素自然而然地被放置在最后一个位置 boolean flag=false; //标志位,标志本次遍历是否出现乱序情况原创 2021-08-28 16:28:01 · 185 阅读 · 0 评论 -
折半插入排序(王道书思想Java实现)
因为王道是对数组下标[1,n]进行排序,本文是对下标为[0,n-1]进行排序,故对数组下标做一定改变。private void InsertSort(int[] A,int n){ //本文数组长度为n,书中数组长度为n+1 for(int i=1;i<n;i++){ //从A[1]开始向前插入 int temp=A[i];原创 2021-08-26 16:35:56 · 173 阅读 · 0 评论 -
插入排序(王道书思想Java实现)
插入排序(王道书思想Java实现)public void InsertSort(int A[],int n){ //长度为n的整数数组,下标0~n-1 for(int i=1;i<=n;i++){ //从A[1]开始插入 if(A[i]<A[i-1]){ //遍历到的A[i]若小于前驱则插入前方的有序表 int temp=A[i]; //新建一个变量temp存储原创 2021-08-24 19:03:05 · 166 阅读 · 0 评论 -
希尔排序(王道书思想Java实现)
希尔排序(王道书思想Java实现)希尔排序是基于插入排序的改进,插入排序在处理基本有序的排序表时速度较快,因而希尔排序的主要思想是在插排之前,让数组尽可能地有序。首先将间隔一个初始步长位置的子表利用插排排序为有序表,然后不断缩小步长再进行插排,直到最后步长为1,排序结束。public void ShellSort(int A[],int n){ for(int dk=n/2;dk>=1;dk=dk/2){ //步长由长度的一半减到1 for(int i=dk;i<n;i+原创 2021-08-25 14:34:53 · 251 阅读 · 0 评论