网站首页 > 文章中心 > 其它

java实现排序代码

作者:小编 更新时间:2023-08-18 13:57:26 浏览量:251人看过

java冒泡排序法代码

冒泡排序是比较经典的排序算法.代码如下:

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

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

//交换位置

} ? ?

java实现排序代码-图1

拓展资料:

原理:比较两个相邻的元素,将值大的元素交换至右端.

第一趟比较完成后,最后一个数一定是数组中最大的一个数,所以第二趟比较的时候最后一个数不参与比较;

第二趟比较完成后,倒数第二个数也一定是数组中第二大的数,所以第三趟比较的时候最后两个数不参与比较;

依次类推,每一趟比较次数-1;

......

参考资料:冒泡排序原理

java排序代码

java实现排序代码-图2

请用java语言编写排序程序.

参考代码如下,可以按需求自己修改

import?java.util.Date;

public?class?SortThread?{

public?static?void?main(String[]?args)?{

//产生一个随机数组

int[]?ary?=?getArray();

//启动冒泡排序线程

new?Thread(new?MaoPao(ary)).start();

//启动快速排序线程

new?Thread(new?KuaiSu(ary)).start();

}

private?static?int[]?getArray()?{

//建议数字n不要超过1百万,十万左右就好了

int?n?=?(int)?(Math.random()*1000000)+11;

int[]?ary=?new?int[n];

System.out.println("n的值是"?+?n);

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

ary[i]?=?(int)?(Math.random()*100000);

return?ary;

//冒泡排序

class?MaoPao?implements?Runnable?{

int[]?ary;

public?MaoPao(int[]?ary)?{

this.ary?=?ary;

@Override

public?void?run()?{

long?st?=?System.currentTimeMillis();

System.out.println(new?Date()?+?"冒泡排序线程:开始执行排序");

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

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

if?(ary[j]?ary[j?+?1])?{

int?temp?=?ary[j];

ary[j]?=?ary[j?+?1];

ary[j?+?1]?=?temp;

long?et?=?System.currentTimeMillis();

System.out.println(new?Date()?+?"冒泡排序线程完成排序,耗费时间"?+?(et?-?st)?+?"毫秒");

System.out.println(ary[i]+"?");

//快速排序

class?KuaiSu?implements?Runnable?{

public?KuaiSu(int[]?ary)?{

System.out.println(new?Date()?+?"快速排序线程:开始执行排序");

quickSort(ary,?1,?ary.length);

System.out.println(new?Date()?+?"快速排序线程排序完成,耗费时间"?+?(et?-?st)?+?"毫秒");

public?static?int?Partition(int?a[],?int?p,?int?r)?{

int?x?=?a[r?-?1];

int?i?=?p?-?1;

int?temp;

for?(int?j?=?p;?j?=?r?-?1;?j++)?{

if?(a[j?-?1]?=?x)?{

i++;

temp?=?a[j?-?1];

a[j?-?1]?=?a[i?-?1];

a[i?-?1]?=?temp;

temp?=?a[r?-?1];

a[r?-?1]?=?a[i?+?1?-?1];

a[i?+?1?-?1]?=?temp;

return?i?+?1;

public?static?void?quickSort(int?a[],?int?p,?int?r)?{

if?(p?r)?{

int?q?=?Partition(a,?p,?r);

quickSort(a,?p,?q?-?1);

quickSort(a,?q?+?1,?r);

在java编程中如何对数组进行排序,并输出排序后的数组及原数组下标值

java变成对数组进行排序可以使用ArraySort方法,保存源数组下标值可以存入map中,如下代码:

import?java.util.ArrayList;

import?java.util.Arrays;

import?java.util.HashMap;

import?java.util.List;

public?class?ceshi?{

HashMap?map?=?new?HashMap();

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

map.put(a[i],?i);?//?将值和下标存入Map

//?排列

List?list?=?new?ArrayList();

Arrays.sort(a);?//?升序排列

list.add(a[i]);

java实现排序代码-图3

for?(Object?object?:?list)?{

System.out.print(object?+?",");

System.out.println();

//?查找原始下标

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

System.out.print(map.get(a[i])?+?",");

运行结果如下:

java中排序算法代码

package temp;

import sun.misc.Sort;

/**

* @author zengjl

* @version 1.0

* @Des java几种基本排序方法

*/

* SortUtil:排序方法

* 关于对排序方法的选择:这告诉我们,什么时候用什么排序最好.当人们渴望先知道排在前面的是谁时,

* 我们用选择排序;当我们不断拿到新的数并想保持已有的数始终有序时,我们用插入排序;当给出的数

* 列已经比较有序,只需要小幅度的调整一下时,我们用冒泡排序.

public class SortUtil extends Sort {

* 插入排序法

* @param data

* @Des 插入排序(Insertion Sort)是,每次从数列中取一个还没有取出过的数,并按照大小关系插入到已经取出的数中使得已经取出的数仍然有序.

public int[] insertSort(int[] data) {

①./11页

int temp;

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

for (int j = i; (j 0) (data[j] data[j - 1]); j--) {

swap(data, j, j - 1);

return data;

* 冒泡排序法

* @return

* @Des 冒泡排序(Bubble Sort)分为若干趟进行,每一趟排序从前往后比较每两个相邻的元素的大小(所以呢一趟排序要比较n-1对位置相邻的数)并在

* 每次发现前面的那个数比紧接它后的数大时交换位置;进行足够多趟直到某一趟跑完后发现这一趟没有进行任何交换操作(最坏情况下要跑n-1趟,

* 这种情况在最小的数位于给定数列的最后面时发生).事实上,在第一趟冒泡结束后,最后面那个数肯定是最大的了,于是第二次只需要对前面n-1

* 个数排序,这又将把这n-1个数中最小的数放到整个数列的倒数第二个位置.这样下去,冒泡排序第i趟结束后后面i个数都已经到位了,第i+1趟实

* 际上只考虑前n-i个数(需要的比较次数比前面所说的n-1要小).这相当于用数学归纳法证明了冒泡排序的正确性

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

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

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

具体代码如下:

import?java.util.Random;

public?class?Demo?{

int?count?=?0;

Random?random?=?new?Random();

int?a[]?=?new?int[10];

while(count?10){

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实现排序代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章