码迷,mamicode.com
首页 > 编程语言 > 详细

Java数组排序

时间:2017-12-06 13:10:50      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:ret   需要   tin   pre   步骤   stat   util   package   com   

一、冒泡排序算法的运作如下:

比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较

二、选择排序:

  选择排序是从冒泡排序演化而来的,每一轮比较得出最小的那个值,然后依次和每轮“无序区”中参与比较的第一个值进行交换。

具体代码:

1 package com.study.sort;
2 
3 import java.util.Arrays;
4 import java.util.Collections;
5 import java.util.Random;
6 /**
7 * @ClassName: MaoPao 
8 * @date 2017年10月10日 下午5:15:21
9 */
10 public class MaoPao {
11 
12 public static void main(String[] args) {
13 int[] arr = new int[20];
14 Random rd = new Random();
15 for(int i = 0;i<20;i++){
16 int a= rd.nextInt(101);//100以内的随机整数
17 arr[i] = a ;
18 // System.out.println(a);
19 }
20 //[19, 84, 47, 69, 28, 20, 79, 53, 17, 67, 96, 39, 49, 66, 1, 8, 92, 27, 63, 94]
21 System.out.println(Arrays.toString(arr));
22 // mao(arr);
23 xuan(arr);
24 System.out.println(Arrays.toString(arr));
25 }

三、冒泡排序

具体代码:

 public static int[] mao(int[] arr){
29 for(int i = 0;i<arr.length-1;i++){
30 for(int j= 0;j<arr.length-1-i;j++){
31 if(arr[j]>arr[j+1]){
32 
33 int temp = arr[j];
34 arr[j] = arr[j+1];
35 arr[j+1] = temp; 
36 }
37 }
38 }
39 return arr;
40 }
41 
42 //选择排序
43 public static int[] xuan(int[] arr){
44 for(int i = 0 ;i<arr.length;i++){
45 int min = i;
46 for(int j=i+1;j<arr.length;j++){
47 if(arr[min]>arr[j]){
48 min = j;
49 }
50 }
51 if(min!= i){
52 int temp = arr[min];
53 arr[min] = arr[i];
54 arr[i] = temp;
55 }
56 }
57 return arr;
58 }
59 }

  

     参照图解分析:

技术分享图片 技术分享图片

Java数组排序

标签:ret   需要   tin   pre   步骤   stat   util   package   com   

原文地址:http://www.cnblogs.com/zengsiqi/p/7991908.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!