【java-在未知值之前对具有已知值的列表进行排序】教程文章相关的互联网学习教程文章

java插入排序法【代码】

import java.util.Arrays;public class Charu { public static void main(String[]args) { int[] arr={23,355,76,89,98,12,34,65,78,6}; System.out.println(Arrays.toString(arr)); for(int i=1;i<arr.length;i++) { for(int j=i;j>0;j--) { if(arr[j-1]>arr[j]) { int temp=arr[j-1]; ...

java冒泡排序和快速排序代码

冒泡排序:基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。public class BubbleSorted{ public BubbleSorted(){ int a[]={49,38,65,97,76,13,27,49,78,34,12,64,5,4,62,99,98,54,56,17,18,23,34,15,35,25,53,51}; int temp=0; for(int i=0;i<a.length-1;i+...

java--传入比较器对数组排序【代码】

package com.test; import com.bean.*;import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import com.bean.Student; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; import java.util.HashSet; import java.util.LinkedHashSet; import java.util.List; import java.util.Random; import java.util.Scanner; import java.util.TreeSet;import com.bean.S...

Java中常见的排序方式-快速排序(升序)【代码】

【基本思想】快速排序在元素较多的情况下,排序效率是相当高的。其基本思想是这样:假设数组为int[] arr = { 49, 38, 65, 97, 76, 13, 27, 22, 26, 41, 13, 17, 32 },数组元素个数为13个。选定a[0]为left标记,a[12]为right标记,基准点pivot的初始位置一般也为a[0](其值记为p)。定义i,j分别代表了不断变化的left和right标记。此时,先让基准点归位。即以p为基准,左侧元素均小于p,右侧元素均大于p。具体即为:1.左标记不断右移...

Java 中冒泡排序【代码】【图】

package com.nf147.test;publicclass sort {publicstaticvoid main(String[] args) {int arr[] = {11, 1, 3, 10, 7, 5, 20, 34, 14, 16};System.out.println("排序前");for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}System.out.println();System.out.println("==================");for (int i = 0; i < arr.length - 1; i++) {for (int j = 0; j < arr.length - 1 - i; j++) {if(arr[j]>arr[j+1]){int...

Java ArrayList排序方法详解

由于其功能性和灵活性,ArrayList是 Java 集合框架中使用最为普遍的集合类之一。ArrayList 是一种 List 实现,它的内部用一个动态数组来存储元素,因此 ArrayList 能够在添加和移除元素的时候进行动态的扩展和缩减。你可能已经使用过 ArrayList,因此我将略过基础部分。如果你对 ArrayList 还不熟悉,你可以参考它的 API 文档,可以很容易理解在 ArrayList 上执行基本的操作。In this post, I will discuss one of the most import...

Java排序算法(五):堆排序【图】

[算法说明]堆排序是对简单选择排序的改进简单选择排序是从n个记录中找出一个最小的记录,需要比较n-1次。但是这样的操作并没有把每一趟的比较结果保存下来,在后一趟的比较中,有许多比较在前一趟已经做过了,但由于前一趟排序时未保存这些比较结果,所以后一趟排序时又重复执行了这些比较操作,因而记录的比较次数较多。堆是具有下列性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值...

Java 实现二分(折半)插入排序

设有一个序列a[0],a[1]...a[n];其中a[i-1]前是已经有序的,当插入时a[i]时,利用二分法搜索a[i]插入的位置效率:O(N^2),对于初始基本有序的序列,效率上不如直接插入排序;对于随机无序的序列,效率比直接插入排序要高/** 二分(折半)插入排序* 设有一个序列a[0],a[1]...a[n];其中a[i-1]前是已经有序的,当插入时a[i]时,利用二分法搜索a[i]插入的位置*/ public class BinaryInsertSort {public static void main(String[] args) {int ...

归并排序 - 递归非递归实现java【代码】

1.归并排序思想:以2路归并为例,一个有n个记录的序列可以看作n个长度为1的有序子序列,将其两两合并成n/2(向上取整)个长度为2或1的有序序列,当有奇数个记录时为1,重复归并,直到得到一个长度为n的有序序列。2.归并排序的复杂度:递归:时间复杂度O(nlongn),空间复杂度O(n+longn)非递归:时间复杂度O(nlongn),空间复杂度O(n)所以用到归并排序,还是优先考虑非递归吧。 3.递归实现 1publicvoid mergeSort1(int[] data){2 ...

归并排序的java实现【代码】

归并排序的优点不说了。  做归并排序之前,我先试着将两个有序数组进行排序,合并成一个有序数组。  思路:定义好两个有序数组,理解的时候我先思考了数组只有一个数组的排序,然后是两个元素的数组的排序,思路就有了,先比较两个数组的首元素,谁更小就放入结果数组里面,然后指针下移,继续比较,直到有一个数组为空,停止比较,因为是有序数组,那么不为空的数组后面的元素都比之前存入结果数组的要大,且是有序的,因此,...

java排序【代码】

时间复杂度: 在一段逻辑中,找到会必然发生并且重复执行的代码,将这段代码的执行时间看作单位1,考虑随着元素个数增多,单位1的执行次数 在时间复杂度中,一般不考虑系数,除非系数足够大,能够影响变化趋势 在时间复杂度中,一般考虑影响最大的一项冒泡/选择排序的时间复杂度:O(n^2)二分查找的时间复杂度:O(logn)稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,...

各种排序算法思想复杂度及其java程序实现【代码】【图】

一、冒泡排序(BubbleSort)1. 基本思想:设排序表长为n,从后向前或者从前向后两两比较相邻元素的值,如果两者的相对次序不对(A[i-1] > A[i]),则交换它们,其结果是将最小的元素交换到待排序序列的第一个位置,我们称它为一趟冒泡。下一趟冒泡时,前一趟确定的最小元素不再参与比较,待排序序列减少一个元素,每趟冒泡的结果把序列中最小的元素放到了序列的”最前面”。 2.算法实现package 冒泡排序; /*** 相邻数据两两比较,大的排...

java二叉排序树【代码】

二叉排序树又称二叉查找树。它或者是一颗空树,或者是具有如下性质的二叉树:  1.如果左子树不空,那么左子树上的所有节点均小于它的根节点的值;  2.如果右子树不空,那么右子树上的所有节点均大于它的根节点的值;  3.左右字树也分别是二叉排序树。关于二叉排序树的建立和遍历的代码实现如下: 1class Node{2publicint data;3public Node left;4public Node right;5public Node(int data){6this.data = data;7this.left = ...

Java常用三种算法排序比较【代码】

Java常用三种算法排序比较冒泡排序:package demo1; /**** @author xiaoye 2014-5-13*/ /*** 有N 个数据需要排序,则从第0 个数开始,依次比较第0 和第1 个数据,* 如果第0 个大于第1 个则两者交换,否则什么动作都不做,继续比较第 1 个第2个…,* 这样依次类推,直至所有数据都“冒泡”到数据顶上。冒泡排序的效率 O(N*N ),比较 N*N/2 ,交换N*N/4 。*/ public class BubbleSort {private static int[] num = { 1, 3, 6, 8, 2...

java正则表达式小练习(IP地址检测、排序,叠词的处理,邮件地址的获取)【代码】

import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern;class MyComparator implements Comparator<String>{publicint compare(String ip1, String ip2) {Pattern p = Pattern.compile("\\d{1,3}");Matcher m1 = p.matcher(ip1);Matcher m2 = p.matcher(ip2);while(m1.find()){m2.find();System.out.println(m1.group() + " " + m2.g...