用Java编程语言对一个无序整形数组进行排序(冒泡排序,选择排序,插入排序)

Posted liusir123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Java编程语言对一个无序整形数组进行排序(冒泡排序,选择排序,插入排序)相关的知识,希望对你有一定的参考价值。

public static void main(String[] args) 
/**
* 冒泡排序
* 思路:每个轮次都让第一个数和其后所有的数进行轮比较,如果这轮的第一个数大则和其下一个数交换位置,如果他一直大则冒泡的最后一位
* 1、除了最后一位,前面的数都需要进行冒泡
* 2、第一轮,第一个数进行冒泡,和其后的数进行比较
* 3、第二轮,新序列的第一个数进行冒泡
*/

int[] ary=new int[]90,50,40,60,55;
//外层循环控制有多少个数需要比较的轮数,最原始最后一位数不需要冒泡,数组长度减一
for (int i=1;i<ary.length;i++)
//内层循环控制每个轮次的第一个数比较换位的过程
for (int j=0;j<ary.length-1;j++)
//如果这个轮次的第一个数大于其后的数就一直换位,直到比他大的数出现,不换位了,新的序列生成
if (ary[j]>ary[j+1])
int tmp;
tmp=ary[j];
ary[j]=ary[j+1];
ary[j+1]=tmp;



//foreach()遍历输出
for (int i:ary)
System.out.print(i+"\\t");


运行结果:
技术图片

 

 public static void main(String[] args) 
/**
* 选择排序
* 思路:从剩余数组中选择最小的数并获取它的的下标,然后把最小的数与剩余数组的第一个数进行交换位置
*/

int[] ary=new int[]90,50,40,60,55;
//外层循环表示从剩余数组寻找最小值的轮数,数组长度为5的话,寻找4轮
for (int i=0;i<ary.length-1;i++)
//假定的最小值的下标,第一轮为ary[0],每次为剩余数组的第一个数
int minindex=i;
//j=i表示从剩余数组中查找最小数的下标
for (int j=i;j<ary.length;j++)
//如果假定的最小值大于其后的数,则更换下标
if (ary[minindex]>ary[j])
minindex=j;


if (ary[i]!=ary[minindex])
int tmp;
tmp=ary[i];
ary[i]=ary[minindex];
ary[minindex]=tmp;


//foreach()遍历输出
for (int a:ary)
System.out.print(a+"\\t");


运行结果:

技术图片


    public static void main(String[] args) 
/**
* 插入排序
* 思路:第一轮,先把第一个数当成一个有序数组,把剩余的数从第一个开始逐个往假定的有序数组中插入,插入后还是有序的,
*/
int[] ary=new int[]50,30,40,10,20;
//错误思路
// for (int i=1;i<5;i++)
// for (int j=0;j<i;j++)
// if (ary[j]>ary[i])
// int t;
// t=ary[j];
// ary[j]=ary[i];
// ary[i]=t;
//
//
//
for (int i=1;i<5;i++)
int tmp=ary[i];
int j;
//i代表假定的有序数组的长度,i-1代表有序数组的最后一位的下标
for ( j=i-1;j>=0;j--)
//如果有序数组中的数大于待插入的数,则此数和其后的数都向后移动一位
if (ary[j]>tmp)
ary[j+1]=ary[j];
else
break;


//循环结束后,插入待插入的数,这个时候j的值是-1或者是有序数组中比待插入数小的数的下标,不加1的话会插错位置,所以j要加1
ary[j+1]=tmp;


//使用Arrays工具类对数组排序
Arrays.sort(ary);
//foreach()遍历输出
for(int a:ary)
System.out.print(a+"\\t");


运行结果:
技术图片

 

 


以上是关于用Java编程语言对一个无序整形数组进行排序(冒泡排序,选择排序,插入排序)的主要内容,如果未能解决你的问题,请参考以下文章

C语言冒泡排序

冒泡排序

java-冒泡排序

用JavaScript实现冒泡排序法选择排序法二分法查找

对整形数组进行快速排序

冒泡排序——用指针实现