黑马程序员技术交流社区
标题:
将自己自学的两个排序写了一下
[打印本页]
作者:
zlp19940327
时间:
2015-4-14 00:45
标题:
将自己自学的两个排序写了一下
还有什么排序常用的嘛?
import java.util.Arrays;
class Paixu
{
public static void main(String[] args)
{
int[] arr={1,3,4,2,6,5,8};
System.out.println("排序前:");
print(arr);//打印数组
System.out.println("选择排序后:");
selectSort(arr);//选择排序
print(arr);//打印数组
System.out.println("冒泡排序后:");
bubbleSort(arr);//冒泡排序
print(arr);//打印数组
System.out.println("Arrays类中sort()排序后:");
Arrays.sort(arr);//升序排序
print(arr);//打印数组
}
//选择排序:一个元素和它后面每个元素进行比较 如果符合条件换位
public static void selectSort(int[] arr){
for(int i=0;i<arr.length-1;i++){//外层控制比较[arr.length-1]趟 每趟比较都会产生一个最值在[i]的位子
for(int j=i+1;j<arr.length;j++){//内层循环控制一趟比较多少[arr.length]次 i+1让每次比较的元素减少
if(arr[i]>arr[j]){//一个元素[i]和后面的所有元素[j=i+1]比较 从小到大
swap(arr,i,j);//调用方法交换两个数
}
}
}
}
//冒泡排序: 相邻两个元素进行比较,如果符合条件换位
public static void bubbleSort(int[] arr){
for(int i=0;i<arr.length-1;i++){//外层控制比较[arr.length-1]趟 每趟比较都会产生一个最值在[arr.length-1-i]的位子
for(int j=0;j<arr.length-1-i;j++){//内层循环控制一趟比较多少次[arr.length-1-i] -i让每次比较的元素减少 -1避免数组下标越界
if(arr[j]<arr[j+1]){//相邻两个元素[j][j+1]进行比较 从大到小
swap(arr,j,j+1);//调用方法交换两个数
}
}
}
}
//交换两个数 定义第三方变量
public static void swap(int[] arr,int a,int b){
int temp=arr[a];
arr[a]=arr[b];
arr[b]=temp;
}
//打印数组
public static void print(int[] arr){
System.out.print("[");
for(int i=0;i<arr.length;i++){
if(i!=arr.length-1){
System.out.print(arr[i]+",");
}else{
System.out.println(arr[i]+"]");
}
}
}
}
作者:
静心明德
时间:
2015-4-14 01:37
最常用的也就这两个,能熟练掌握再好不过了。
作者:
z小怪兽
时间:
2015-4-14 07:25
不错不错…
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2