「java实现排序算法动画」java编程排序算法实现
今天给各位分享java实现排序算法动画的知识,其中也会对java编程排序算法实现进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java实现几种常见排序算法
- 2、用JAVA实现线性表排序
- 3、java编程实现随机数组的快速排序
- 4、Java冒泡排序的原理?
- 5、JAVA编程实现对数组{25.24.12.76.101.96.28}的排序。使用冒泡排序算法
- 6、如何用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实现排序算法动画的信息别忘了在本站进行查找喔。