
排序
文章平均质量分 67
也非野人
这个作者很懒,什么都没留下…
展开
-
JAVA语言之选择排序
选择排序:将第一个数的下表标记好为min,然后在内循环里面一次和当前下标的下一个进行大小的比较,然后将小的那个数下标给与min,然后进行循环,最后将min标记的值和第一个数进行交换;package com.paixu;public class xuanze {public static void main(String[] args) {int[] A=new int[]{原创 2016-05-07 18:58:46 · 348 阅读 · 0 评论 -
JAVA语言之最短子数组长度
对于一个数组,请设计一个高效算法计算需要排序的最短子数组的长度。给定一个int数组A和数组的大小n,请返回一个二元组,代表所求序列的长度。(原序列位置从0开始标号,若原序列有序,返回0)。保证A中元素均为正整数。测试样例:[1,4,6,5,9,10],6返回:2思路:用一个max和min分别来遍历整个数组中最大的元素和最小的元素;并且max对应一原创 2016-05-09 18:21:06 · 910 阅读 · 0 评论 -
JAVA语言之有序矩阵查找
现在有一个行和列都排好序的矩阵,请设计一个高效算法,快速查找矩阵中是否含有值x。给定一个int矩阵mat,同时给定矩阵大小nxm及待查找的数x,请返回一个bool值,代表矩阵中是否存在x。所有矩阵中数字及x均为int范围内整数。保证n和m均小于等于1000。测试样例:[[1,2,3],[4,5,6],[7,8,9]],3,3,10返回:false原创 2016-05-09 12:28:12 · 891 阅读 · 0 评论 -
JAVA语言之三色排序
有一个只由0,1,2三种元素构成的整数数组,请使用交换、原地排序而不是使用计数进行排序。给定一个只含0,1,2的整数数组A及它的大小,请返回排序后的数组。保证数组大小小于等于500。测试样例:[0,1,1,0,2,2],6返回:[0,0,1,1,2,2]可以用两个变量left和right分别代表0和2的阵营代码如下: pub原创 2016-05-08 23:37:24 · 850 阅读 · 0 评论 -
JAVA之希尔排序
希尔排序,可以理解为将一排序列分成多个小组然后进行插入排序 代码如下 #include#includevoid xierQueue(int a[],int n);int main(){ int n; printf("输入几个数? "); scanf("%d",&n); int a[n]; int i; for(i=0;i int d;原创 2016-03-15 14:55:15 · 416 阅读 · 0 评论 -
JAVA语言之快速排序
package com.paixu;public class kuaipai {/*** @param args*/public static void main(String[] args) {int[] a = new int[] {5,4,3,2,0};kuaipai aaa = new kuaipai();aaa.quick(a, 0, 5)原创 2016-04-05 18:20:18 · 967 阅读 · 0 评论 -
JAVA语言之归并排序
package com.paixu;public class guibing {public static void main(String[] args) { int[] A=new int[]{5,3,4,2,1}; A=guibing.mergeSort(A, 5); for(int i=0;i System.out.print(A[i]+"原创 2016-04-27 18:55:25 · 453 阅读 · 0 评论 -
JAVA语言之计数排序
非比较的计数排序可以用桶排序的方式实现代码如下:package com.paixu;public class jishu {public static void main(String[] args) {int[] A=new int[]{1,2,3,5,2,3};A=jishu.countingSort(A, 6);for(int i=0;iSyste原创 2016-05-01 21:43:02 · 572 阅读 · 0 评论 -
JAVA语言之基数排序
基数排序简而言之可以创建0~9余数共十个桶代码如下:public class jishu_1 {public static void main(String[] args) {int[] A=new int[]{54,35,48,36,27,12,44,44,8,14,26,17,28};A=jishu_1.radixSort(A,13);for(int i=0;iSy原创 2016-05-02 22:55:40 · 320 阅读 · 0 评论 -
JAVA语言之堆排序
实现的是大根堆代码如下:public static int[] heapSort(int[] A, int n) {//先建立一个大根堆A=getDui(A);//进行一个个的排序拖出从根顶开始for(int i=n-1;i>0;i--){int t=A[0];A[0]=A[i];A[i]=t;//每次从根底取值然后长度-1然后进行大根堆的化简adjus原创 2016-05-03 23:18:51 · 327 阅读 · 0 评论 -
JAVA语言之相邻两数最大差值
有一个整形数组A,请设计一个复杂度为O(n)的算法,算出排序后相邻两数的最大差值。给定一个int数组A和A的大小n,请返回最大的差值。保证数组元素多于1个。测试样例:[1,2,5,4,6],5返回:2代码如下:import java.util.*;public class Gap { public int maxGap(int原创 2016-05-09 19:28:24 · 3448 阅读 · 0 评论