Java实现的冒泡+选择排序算法

    

                数组的高级操作(冒泡排序,选择排序,数组工具类,练习)

一:冒泡排序                      

1.2 冒泡排序基本概念是:

相邻的两个元素进行比较,小的放前面,大的放后面

1.3 画图讲解冒泡排序,int[] arr = { 24, 69, 80, 57, 13 };

1.4 文字分析比较过程

第一次比较:比较了4次,最大的值放到了最后

第二次比较:比较了3次,次大的值放到了倒数第二,依次类推。

举个例子:从键盘输入10个数字,用冒泡排序进行从小到大的排序

源代码如下:

package com.study01;

import java.util.Arrays;

import java.util.Scanner;

/*

 * 从键盘输入10个数字,用冒泡排序进行从小到大的排序

 */

public class DemoSort {

public static void main(String[] args) {

System.out.println("Please input number:");

int []arr=new int [10];

for(int i=0;i<=9;i++){

Scanner sc=new Scanner(System.in);

arr[i]=sc.nextInt();

}

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 temp=arr[j];

arr[j]=arr[j+1];

arr[j+1]=temp;

}

}

}System.out.println(Arrays.toString(arr));

}

}

这里需要注意越界问题,要分清数组索引和实际值,因为Java数组首元素为a[0],所以容易引起模糊。另外我在最后的输出语句调用的是String的方法,这就使得转化为转化为字符串来说相对容易,并且不用去写一个字符串输出函数函数专门去调用。

字符串输出函数:public static void printArray(int []arr){

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

System.out.println(arr[i]);

}

}//在写Java程序的时候一定要注意大括号匹配的问题,要有清楚的思维。

二:选择排序:

2.1 选择排序概念:

 * 选择排序:

 * 0索引开始,依次和后面的每一个元素进行比较

 * 第一次比较完毕,最小值出现在了最小索引处

 * 第二次比较完毕,次小值出现在了次小索引处

 * ...

 * 完毕后,就排序了。

 

2.2 画图讲解选择排序规

2.3 运用选择排序int[] arr = { 24, 69, 80, 57, 13 };进行排序

 

举个例子:

package com.study01;

/*

 * 运用选择排序int[]arr = { 24, 69, 80, 57, 13 };进行排序

 */

public class DemoSort2 {

public static void main(String[] args) {

int []arr={24,69,80,57,13};

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

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

if(arr[i]>arr[j]){

int temp=arr[i];

arr[i]=arr[j];

arr[j]=temp;

}

}

}printArray(arr);

}public static void printArray(int[] arr){

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

System.out.println(arr[i]);

}

}

}

 

三:Arrays数组工具类

3.1 针对数组进行操作的工具类。提供了排序,转换等功能。

3.2

 * 成员方法:

 * public static String toString(int[] a):把数组转成字符串

 * public static void sort(int[] a):对数组进行排序(有重载)

public static String toString(int[] a):把数组转成字符串的例子:

package com.study02;

import java.util.Arrays;

public class ArraysDemo2 {

public static void main(String[] args) {

int []arr={1,2,34,5};

String arrStr=Arrays.toString(arr);

System.out.println(arrStr);

char []chs={'w','u','j','i'};

String chsStr=Arrays.toString(chs);

System.out.println(chsStr);

 

}

}

 

public static void sort(int[] a):对数组进行排序(有重载)的例子:

package com.study02;

import java.util.Arrays;

public class DemoArrays {

public static void main(String[] args) {

int[] arr={4,8,2,0,9};

Arrays.sort(arr);

printArr(arr);

char[]chs={'w','d','r','a','o'};

Arrays.sort(chs);

printArr(chs);

}

public static void printArr(int[]arr){

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

System.out.print(arr[i]+" ");

}System.out.println();

}public static void printArr(char[]chs){

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

System.out.print(chs[i]+" ");

}System.out.println();

}

 

}

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值