黑马程序员技术交流社区
标题: 两种排序的方法,总结: [打印本页]
作者: 真真姐 时间: 2012-4-22 16:34
标题: 两种排序的方法,总结:
本帖最后由 真真姐 于 2012-10-21 14:30 编辑
两种排序的方法,乍一看是不是都差不多,实际上他们是不一样的,注意看第二个for循环
冒泡排序基本原理:大泡在上,小泡在下。也就是依次比较相邻的两个数 。
public static void paiXu1(int[] arr) {
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1])
{
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j+ 1] = temp;
}
}
}
}
这一种排序,我们简单分析一下他执行的过程,外层的for循环中的变量也参与的数组的比对,
通俗一点就是,数组的每一个数要跟自己后面的所有的数进行比较! 当然也实现了相应的功能!
public static void paiXu2(int[] arr) {
for (int x = 0; x < arr.length; x++) {
for (int y = x + 1; y < arr.length; y++) {
if (arr[x] > arr[y]) {
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
}
}
}
作者: cz373095238 时间: 2012-4-22 20:56
我的两个排序 请指教:
public class Sort {
/**
* @param 排序
*/
public static void main(String[] args) {
int[] arr={5,7,1,9,2,6,3,4,8};
selectedSort(arr);
p(arr);
System.out.println();
bubbleSort(arr);
p(arr);
}
/*
* 打印的方法。
*/
private static void p(int[] arr) {
for(int i=0; i<arr.length; i++){
System.out.print(arr[i]+" ");
}
}
/*
* 选择排序
*/
private static void selectedSort(int[] arr) {
int temp = 0;
for(int i=0; i<arr.length; i++){
for(int j=i+1; j<arr.length; j++){
if(arr[j]<arr[i]){
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
/*
* 冒泡排序
*/
public static void bubbleSort(int[] arr){
int temp = 0;
for(int i=arr.length-1; i>=1; i--){
for(int j=0; j<=i-1; j++){
if(arr[j]>arr[j+1]){
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
}
作者: 王勃 时间: 2012-4-24 09:31
一个冒泡排序,一个选择排序,当然算法不同喽。。。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |