排序
排序
jay编程
这个作者很懒,什么都没留下…
展开
-
java,c,实现对二维数组进行排序
标题:java,c,实现对二维数组进行排序下面两个都是降序排序,若要改成升序,只需要将a[1] - b[1]变成吧b[1]-a[1]即可Java版本:c版本:java代码:public int maximumUnits(int[][] boxTypes) { Integer[][] nums = new Integer[boxTypes.length][2]; for(int i = 0;i < boxTypes.length;i++){ nums[原创 2022-03-06 11:26:56 · 748 阅读 · 0 评论 -
Java实现计数排序
标题:Java实现计数排序参考blog:添加链接描述package com.sort;/*测试计数排序:计数排序:缺点:1.当数据不是整数时,2.最小值,最大值相差很大时候,构造的数组太大了;3.两个值相同时候,比如排名之类的,分不清谁在前面,后面,需要优化思想1.用max,min构造一个数组2.遍历数组,在新的数组中对每个元素进行计数3.对原先的数组,重新赋值 */public class TestCountSort { public static void mai原创 2022-03-05 15:15:00 · 535 阅读 · 0 评论 -
Java中输入学生信息,传到文件中,再从文件 中读取,EOFException,invalid type code: AC解决办法
标题:Java中输入学生信息,传到文件中,再从文件 中读取,EOFException,invalid type code: AC解决办法1.使用ObjectOutputStream,Student需要序列化,也就是implements Serializable接口2.Java中实现排序的视频:添加链接描述3.Java中scanner视频:添加链接描述4.Java中流的视频:添加链接描述p116,看完就会了,完整代码:package com.sxt.io3;import java.io.原创 2022-03-03 11:04:28 · 307 阅读 · 0 评论 -
Java实现: 找到数组中第k大的元素【待续】
java 实现: 找到数组中第k大的元素 【待续】好像要用堆排序,才快,涉及到了堆排序, 【最优,待续】下面的可以做,不过不优TreeNode(得到list,直接做),TreeNode ,每次得到从右向左的中序,找到第k个最大的即可快速排序直接做,每回直接将list排序,找到第k个最大的 /* 题目二: 方法一:## 找到数组中第k大的元素 每次add时,将val添加到TreeNode中,使用中序遍历的逆序,取得第k大的元素 执行用时:2562 ms, 在所有 Java 提交原创 2020-11-23 11:38:45 · 369 阅读 · 0 评论 -
java排序算法之希尔排序
标题:java排序算法之希尔排序一、分析希尔排序,就是在直接插入排序中,减少了比较次数【直接插入排序的升级版】。二、解题直接插入排序:从第二个元素起,每次取一个元素,插入到该元素的前面位置中,按递增顺序排列的子序列中的合适位置public int[] directInsert(int[] a) { for(int i=1;i<a.length;i++) { int temp=a[i]; while(i>0 && temp<a[i-1]) {原创 2020-08-14 18:13:12 · 81 阅读 · 0 评论 -
java排序算法之快速排序
标题:java排序算法之快速排序一、分析快速排序,就是每次取第一个数,经过排序后 ,使得左边的小于该数,右边的大于该数对于此数组eg:32,15,6,48,19,21,47第一次排序后21,15,6,19,32,48,47可以发现32的左边小于它,右边大于它。此后,就可以将32的两边分开进行递归【重复上述的第一次排序步骤】。参考代码如下:public int[] quickSort(int[] a,int start,int end) { if(start>=end) {原创 2020-08-14 17:50:58 · 69 阅读 · 0 评论 -
Java排序算法之归并排序
标题:Java排序算法之归并排序一、思想将n个记录看成是n个长度为1的有序子表组成将两两相临的子表归并一个有序子表二、解题过程第一步: * 将a[]看成是两个子表, * 一个起点为start1 ,长度为len1 * 一个起点为start2 ,长度为len2 * 对两个子表进行排序【利用两个子表已排好序的特性】/** *将a[]看成是两个子表, *一个起点为start1 ,长度为len1 *一个起点为start2 ,长度为len2 *对两个子表进行排序【利用两个子表已原创 2020-08-04 16:58:09 · 66 阅读 · 0 评论 -
Java排序算法之直接选择【简单选择】排序
标题:Java排序算法之直接选择【简单选择】排序一、思想每次从剩下的无序序列中,选取最小的放入,重复上述步骤public int[] directChoose(int[] a) { for(int i=0;i<a.length-1;i++) { int min=a[i]; int index=i; boolean flag=false; for(int j=i;j<a.length;j++) { if(min>a[j]) { flag=t原创 2020-08-04 16:54:19 · 139 阅读 · 0 评论 -
Java排序算法之直接插入排序
标题:Java排序算法之直接插入排序一、原理从第二个元素一直到最后一个元素,依次和前面的子序列进行比较,若j>0 && a[j]<a[j-1]此元素小于它的前一个元素,则进行交换,重复上述步骤,直到此元素>=它的前一个元素。核心代码如下:for(int i=1;i<a.length;i++) { int j=i; while(j>0 && a[j]<a[j-1]) { int temp=a[j]; a[原创 2020-08-03 16:34:19 · 72 阅读 · 0 评论 -
Java的排序算法之冒泡排序
标题:Java的排序算法之冒泡排序一、原理迭代n-1次,每一次都将【0–>n-1-i】中最大的元素迭代到最后面去,对于这样的数组{32,15,6,48,19,21,2}即第一次遍历0-->n-1;{32,15,6,48,19,21,2},排序后为{15,6,32,19,21,2,48};第二次遍历第二次排序后的【即不需遍历48】0->n-2;{15,6,32,19,21,2},排序后为{6,15,19,21,2,32,48};核心代码如下:for(int i=0;i<原创 2020-08-03 16:28:54 · 143 阅读 · 0 评论