「java实现排序算法动画」java编程排序算法实现

博主:adminadmin 2023-01-01 20:51:08 1087

今天给各位分享java实现排序算法动画的知识,其中也会对java编程排序算法实现进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java实现几种常见排序算法

下面给你介绍四种常用排序算法:

1、冒泡排序

特点:效率低,实现简单

思想(从小到大排):每一趟将待排序序列中最大元素移到最后,剩下的为新的待排序序列,重复上述步骤直到排完所有元素。这只是冒泡排序的一种,当然也可以从后往前排。

2、选择排序

特点:效率低,容易实现。

思想:每一趟从待排序序列选择一个最小的元素放到已排好序序列的末尾,剩下的位待排序序列,重复上述步骤直到完成排序。

3、插入排序

特点:效率低,容易实现。

思想:将数组分为两部分,将后部分元素逐一与前部分元素比较,如果当前元素array[i]小,就替换。找到合理位置插入array[i]

4、快速排序

特点:高效,时间复杂度为nlogn。

采用分治法的思想:首先设置一个轴值pivot,然后以这个轴值为划分基准将待排序序列分成比pivot大和比pivot小的两部分,接下来对划分完的子序列进行快排直到子序列为一个元素为止。

用JAVA实现线性表排序

package Test;

import java.util.Random;

import java.io.*;

import java.util.Date;

import java.text.SimpleDateFormat;

import java.util.Calendar;

public class Baidu {

/**

* 生成随机数组

* @param n int

* @return int[]

*/

public int[] creatarray(int n) {

Random random = new Random();

int array[] = new int[n];

for (int i = 0; i array.length; i++) {

array[i] = random.nextInt();

}

return array;

}

/**

* 排序函数

* @param data int[]

* @param n 参数长度

* @param cNo 比较的值 是0

*/

public int[] merge(int[] data, int n, int cNo) {

int length1 = 0;

int length2 = 0;

int length0 = 0;

int array1[] = new int[n]; //正数

int array2[] = new int[n]; //负数

int array0[] = new int[n]; //零

int redata[] = new int[n]; //返回数组

for (int i = 0; i n; i++) {

if (data[i] 0) {

array1[length1] = data[i];

length1++;

} else if (data[i] == 0) {

array0[length0] = data[i];

length0++;

} else {

array2[length2] = data[i];

length2++;

}

}

for (int i = 0; i length1; i++) {

redata[i] = array1[i];

}

for (int i = 0; i length0; i++) {

redata[length1 + i] = array0[i];

}

for (int i = 0; i length2; i++) {

redata[length1 + length0 + i] = array2[i];

}

return redata;

}

/**

* 输出函数

* @param time int[]

* @param before int[]

* @param end int[]

* @param n int

*/

public void out(long[] time, int[] before, int[] end, int n) {

for (int v = 0; v n; v++) {

System.out.println("第" + v + "组耗时:" + time[v] + " 原来是:" + before[v] +

" 排序后为:" + end[v]);

}

}

public static void main(String args[]) {

Baidu tt = new Baidu();

int[] array = new int[20];

int[] arrayEnd = new int[20];

array = tt.creatarray(20);

int forNum = 3; //循环次数

long[] timeall = new long[forNum];

for (int i = 0; i forNum; i++) {

Calendar cCalendar = Calendar.getInstance();

long currTimebegin = cCalendar.getTimeInMillis();

arrayEnd = tt.merge(array, 20, 0);

cCalendar = Calendar.getInstance();

long currTimeend = cCalendar.getTimeInMillis();

long time = currTimeend - currTimebegin;

timeall[i] = time;

}

tt.out(timeall, array, arrayEnd, forNum);

}

}

大体思路吧 稍微在此基础上修改一下即可

java编程实现随机数组的快速排序

java编程实现随机数组的快速排序步骤如下:

1、打开Eclipse,新建一个Java工程,在此工程里新建一个Java类;

2、在新建的类中声明一个产生随机数的Random变量,再声明一个10个长度的int型数组;

3、将产生的随机数逐个放入到数组中;

4、利用排序算法对随机数组进行排序。

具体代码如下:

import java.util.Random;

public class Demo {

    public static void main(String[] args) {

        int count = 0;

        Random random = new Random();

        int a[] = new int[10];

        while(count  10){

            a[count] = random.nextInt(1000);//产生0-999的随机数

            count++;

        }

        for (int i = 0; i  a.length - 1; i++) {

            int min = i;

            for (int j = i + 1; j  a.length; j++) {

                if (a[j]  a[min]) {

                    min = j;

                }

            }

            if (min != i) {

                int b = a[min];

                a[min] = a[i];

                a[i] = b;

            }

        }

        for (int c = 0; c  a.length; c++) {

            System.out.print(a[c] + " ");

        }

    }

}

Java冒泡排序的原理?

冒泡排序是所欲排序算法里最好理解的了。

1、排序算法:

A)比较相邻的元素。如果第一个比第二个大,就交换他们两个。

B)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

C)针对所有的元素重复以上的步骤,除了最后一个。

D)持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

2、给你一个java的实现代码:

public class BubbleSort{

     public static void main(String[] args){

         int score[] = {67, 69, 75, 87, 89, 90, 99, 100};

         for (int i = 0; i score.length -1; i++){ //最多做n-1趟排序

             for(int j = 0 ;j score.length - i - 1; j++){ //对当前无序区间score[0......length-i-1]进行排序(j的范围很关键,这个范围是在逐步缩小的)

                 if(score[j] score[j + 1]){ //把小的值交换到后面

                     int temp = score[j];

                     score[j] = score[j + 1];

                     score[j + 1] = temp;

                 }

             }

             System.out.print("第" + (i + 1) + "次排序结果:");

             for(int a = 0; a score.length; a++){

                 System.out.print(score[a] + "\t");

             }

             System.out.println("");

         }

             System.out.print("最终排序结果:");

             for(int a = 0; a score.length; a++){

                 System.out.print(score[a] + "\t");

        }

     }

 }

JAVA编程实现对数组{25.24.12.76.101.96.28}的排序。使用冒泡排序算法

import java.util.Arrays;

public class BubbleFinal {

public static void main(String[] args) {

int[] arr ={25,24,12,76,101,96,28};

sortFinal(arr);

}

public static void sortFinal(int[] arr) {

boolean sorted = true;

for (int j = 0; j arr.length - 1; j++) {

sorted = true;

System.out.println("第" + (j + 1) + "趟\t");

for (int i = 0; i arr.length - 1 - j; i++) {

if (arr[i] arr[i + 1]) {

int temp = arr[i];

arr[i] = arr[i + 1];

arr[i + 1] = temp;

sorted = false;

}

System.out.println("第" + (i + 1) + "次" + Arrays.toString(arr));

if (sorted) {

break;

}

}

}

}}

如何用JAVA实现快速排序算法?

本人特地给你编的代码\x0d\x0a亲测\x0d\x0a\x0d\x0apublicclassQuickSort{\x0d\x0a\x0d\x0apublicstaticintPartition(inta[],intp,intr){\x0d\x0aintx=a[r-1];\x0d\x0ainti=p-1;\x0d\x0ainttemp;\x0d\x0afor(intj=p;jif(a[j-1]//swap(a[j-1],a[i-1]);\x0d\x0ai++;\x0d\x0atemp=a[j-1];\x0d\x0aa[j-1]=a[i-1];\x0d\x0aa[i-1]=temp;\x0d\x0a\x0d\x0a}\x0d\x0a}\x0d\x0a//swap(a[r-1,a[i+1-1]);\x0d\x0atemp=a[r-1];\x0d\x0aa[r-1]=a[i+1-1];\x0d\x0aa[i+1-1]=temp;\x0d\x0a\x0d\x0areturni+1;\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0apublicstaticvoidQuickSort(inta[],intp,intr){\x0d\x0a\x0d\x0aif(p

java实现排序算法动画的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java编程排序算法实现、java实现排序算法动画的信息别忘了在本站进行查找喔。