您的位置:首页 > 编程语言 > Java开发

JAVA中常用的排序之冒泡、选择、插入

2013-04-17 17:59 369 查看
本人开发的一个安卓版app小游戏,疯狂猜明星android版,图标看起来很搞笑,有点京剧变脸的味道。朋友们小手一抖,下载支持下。谢谢了


JAVA中常用的排序之冒泡排序:

/**

* 冒泡排序:
* 1.比较相邻的两个数
* 2.如果左边的数大则交换两个数
* 3.第一趟结束,最后一个数最大
* 4.第二趟结束,倒数第二个数第二大
* 5.以此类推,排完数组
* @param arr 要进行排序的数组
*/
public void bubbleSort(int[] arr){
//外部循环控制走的趟数
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;
}
}
}

}

JAVA中常用的排序之选择排序:

/**
*选择排序:扫描所有元素,将最小的元素和0号位元素交换位置,
*扫描剩下的所有元素,将其中的最小的元素与1号位元素交换位置
*以此类推,完成从小到大排列数组 
* @param arr
*/
public void selectSort(int[] arr){
//外部循环控制循环的次数
for (int i = 0; i < arr.length-1; i++) {
/*内部循环控制比较的次数,0号位和剩下的所有数比较
*1号位和剩下的所有数比较,以此类推
*/
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;
}
}
}
}

JAVA中常用的排序之插入排序:

/**
* 插入排序:
* 1.从数组下标为1的数据开始,
* 依次将其与自身左边的元素全部和部分数据进行比较
* 并插入到适当的位置,使插入之后的数列依然保持有序
* 直至操作完最后一个数据为止
* 将数组从小到大进行插入排序
* @param arr  要排序的数组
*/
public void insertSort(int[] arr){
//插入排序循环次数
int count=0;
//移动次数
int moveCount=0;
for (int i = 1; i < arr.length; i++) {
for (int j = i-1; j >=0; j--) {
count++;
if(arr[j+1]<arr[j]){
int temp=arr[j+1];
arr[j+1]=arr[j];
arr[j]=temp;
moveCount++;
}
}
}
System.out.println("循环次数:= "+count+" 移动次数:= "+moveCount);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息