
正文
java语言数组排序代码 java数组排序
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
java语言:对包含5个元素的一维数组用冒泡法进行排序,编程实现并输出排序后的结果。
代码java语言数组排序代码:
public class test {
private static void sort(Integer arr[], int n) {
if (n = 1) return; //如果只有一个元素就不用排序java语言数组排序代码了
for (int i = 0; i n; ++i) {
// 提前退出冒泡循环的标志位,即一次比较中没有交换任何元素java语言数组排序代码,这个数组就已经是有序的了
boolean flag = false;
for (int j = 0; j n - i - 1; ++j) { //此处java语言数组排序代码你可能会疑问的jn-i-1,因为冒泡是把每轮循环中较大的数飘到后面,
// 数组下标又是从0开始的,i下标后面已经排序的个数就得多减1,总结就是i增多少,j的循环位置减多少
if (arr[j] arr[j + 1]) { //即这两个相邻的数是逆序的,交换
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
flag = true;
}
}
if (!flag) break;//没有数据交换,数组已经有序,退出排序
}
}
public static void main(String[] args) {
Integer arr[] = {2, 6, 3, 67, 54};
sort(arr, arr.length);
System.out.println("冒泡排序后的数组为");
for (Integer i : arr) {
System.out.println(i);
}
}
}
相关问答
Q1: 在java编程中如何对数组进行排序,并输出排序后的数组及原数组下标值
java变成对数组进行排序可以使用ArraySort方法,保存源数组下标值可以存入map中,如下代码:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
public class ceshi {
public static void main(String[] args) {
int n = 5;
int[] a = { 8, 5, 4, 6, 2, 1, 7, 9, 3 };
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); // 升序排列
for (int i = 0; i a.length; i++) {
list.add(a[i]);
}
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]) + ",");
}
}
}
运行结果如下:
Q2: 编写一个java程序对一个字符串数组进行排序
import java.util.Arrays;
public class StringDateSort {
public static void main(String[] args) {
String numString="23 10 -8 0 3 7 108";
String sortStr=sortNumberString(numString);
System.out.println("排序java语言数组排序代码的结果是"+sortStr);
}
private static String sortNumberString(String numString) {
//1.将给定java语言数组排序代码的字符串分解成多个数字格式字符串
String[] numStrings=toStringArray(numString);
//2.将字符串数组转成int数组
int[] nums=toIntArray(numStrings);
//3.对数组排序
sort(nums);
//4.将int数组转成字符串
return toString(nums);
}
private static String toString(int[] nums) {
StringBuffer stringBuffer=new StringBuffer();
for (int i = 0; i nums.length; i++) {
if (i!=nums.length-1) {
stringBuffer.append(nums[i]+"");
}else{
stringBuffer.append(nums[i]);
}
}
return stringBuffer.toString();
}
private static void sort(int[] nums) {
Arrays.sort(nums);
}
private static int[] toIntArray(String[] numStrings) {
int[] nums=new int[numStrings.length];
for (int i = 0; i numStrings.length; i++) {
String s=numStrings[i];
nums[i]=Integer.parseInt(s);
}
return nums;
}
private static String[] toStringArray(String numString) {
String[] numberStr=numString.split(" ");
for (int i = 0; i numberStr.length; i++) {
System.out.println("抽出数字"+numberStr[i]);
}
return numberStr;
}
}
Q3: java 数组排序的方法
JAVA 中数组java语言数组排序代码的几种排序方法java语言数组排序代码:
1、数组java语言数组排序代码的冒泡排序
[java] view plaincopyprint?
public void bubbleSort(int a[]) {
int n = a.length;
for (int i = 0; i n - 1; i++) {
for (int j = 0; j n - 1; j++) {
if (a[j] a[j + 1]) {
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}
2、数组java语言数组排序代码的选择排序
[java] view plaincopyprint?
public void selectSort(int a[]) {
for (int n = a.length; n 1; n--) {
int i = max(a, n);
int temp = a[i];
a[i] = a[n - 1];
a[n - 1] = temp;
}
}
3、数组的插入排序
[java] view plaincopyprint?
public void insertSort(int a[]) {
int n = a.length;
for (int i = 1; i n; i++) { //将a[i]插入a[0:i-1]
int t = a[i];
int j;
for (j = i - 1; j = 0 t a[j]; j--) {
a[j + 1] = a[j];
}
a[j + 1] = t;
}
}
4、设置两层循环
[java] view plaincopyprint?
for(int i=0;iarrayOfInts.length;i++)
{
for(int j=i+1;jarrayOfInts.length;j++)
{
if(arrayOfInts[i]arrayOfInts[j])
{
a=arrayOfInts[i];
arrayOfInts[i]=arrayOfInts[j];
arrayOfInts[j]=a;
}
}
}
5、还有一种方法就是用Arrays.sort()方法:
[java] view plaincopyprint?
//导入包
import java.util.Arrays;
public class Two3{
public static void main(String[]args)
{
int[]arrayOfInts={32,87,3,589,12,7076,2000,8,622,127};
Arrays.sort(arrayOfInts);
for(int i=0;iarrayOfInts.length-1;i++)
{
System.out.print(arrayOfInts[i]+" ");
}
}
Q4: java数组排序
//原理java语言数组排序代码:每次都找到当次最大java语言数组排序代码的数java语言数组排序代码,按大小顺序依次放入数组相应位置
//比如:第一次先找到最大的数并记下其位置java语言数组排序代码,如果其不在数组第一位java语言数组排序代码,
//则将其与第一位交换,使最大数置于第一位
//第二次再循环查找第二大的数并记下其位置,如果其不在数组第二位,
//则将其与第二位交换,使最大数置于第二位
//依次类推.........................................
//第i次再循环查找第i大的数并记下其位置,如果其不在数组第 i位,
//则将其与第 i位交换,使最大数置于第 i位
public class SelectSort {
public static void main(String[] args) {
int[] a = {25,15,42,16,12,36};
int max = 0;
int tmp = 0;
for(int i=0;ia.length;i++){
max = i;//
/**查找第 i大的数,直到记下第 i大数的位置***/
for(int j=i+1;ja.length;j++){
if(a[max]a[j])
max = j;//记下较大数位置,再次比较,直到最大
}
/***如果第 i大数的位置不在 i,则交换****/
if(i!=max){
tmp = a[i];
a[i] = a[max];
a[max] = tmp;
}
}
for(int i=0;ia.length;i++)
System.out.print(a[i]+" ");
}
}
Q5: 利用Java语言,实现数组的排序
import java.util.Scanner;
public class Test{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入十个数:");
int arr[] = new int[11];
for (int i=0;i10;i++){
arr[i] = scanner.nextInt();
}
for (int i=0;i10;i++){
for (int j=i;j10;j++){
if (arr[i]arr[j]){
int tmp = arr[i];arr[i] = arr[j];arr[j] = tmp;
}
}
}
System.out.println("降序排列后输出结果:");
for (int i=0;i10;i++){
System.out.print(arr[i] + " ");
}
System.out.println();
System.out.println("插入一个数:");
int ex = scanner.nextInt();
for (int i=0;i10;i++){
if (exarr[i]){
for (int j=10;ji;j--){
arr[j] = arr[j-1];
}
arr[i] = ex;
break;
}
}
System.out.println("插入一个数后的输出结果:");
for (int i=0;i11;i++){
System.out.print(arr[i] + " ");
}
}
}
关于java语言数组排序代码和java数组排序的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






