注册 登录
编程论坛 J2EE论坛

[悬赏]各种排序算法,你还记得吗?

syg5434 发布于 2010-10-12 10:30, 907 次点击
RT,请大家写一下各种排序算法:冒泡排序,插入排序,快速排序,选择排序,二分法原理。
每个算法请分开回复,每份代码二十分!看看谁写的好了......
希望大家踊跃一点哈!这里太冷清了......
7 回复
#2
jackieli20742010-10-12 10:44
程序代码:
public class BubbleSort{
   

       public static void main(String[] args){

         int[] values ={ 10,23,12,5,98,52,12,62,45 };

         sort(values);

         for(int i=0; i < values.length; ++i){
           

            System.out.println("Index: " + i + "Value: " + values[i]);
           

          }
      

      

    }
   

   

    public static void sort(int[]  values){
      

      

        int temp;
      

        for(int i=0 ; i < values.length ; i++){
           

            for(int j=0; j <values.length - i - 1; j++){
               

                if(values[j] > values[j + 1]){

                    temp = values[j];

                    values[j] = values[j + 1];

                    values[j + 1] = temp;
         

                }
  

            }
                  

       }
    }

}
桌面记事本中发现的冒泡算法
#3
jackieli20742010-10-12 10:45
好像是之前为了面试准备的....
#4
syg54342010-10-12 10:48
这第一个帖子冒的泡确实挺大的。。。
#5
jackieli20742010-10-12 17:29
最简单的就是最精髓的嘛...
#6
heqingkelly2010-10-12 18:49
"jackieli2074"的冒泡多排了一次!

楼主能帮我解决个题吗??????感谢啊,帖了很长时间了,没人回复,
javaEE下 struts2动态文件下载 是2010.10.10的,这论坛比较冷清啊!!!!!!!!!
#7
2010-10-12 19:54
//冒泡排序
static void bubbleSort(int data[ ])
    {
        for(int i=1;i<=data.length-1;i++)
        {
            for(int j=1;j<=data.length-i;j++)
            {
                if(data[j-1]>data[j])
                {
                    int temp;
                    temp=data[j-1];
                    data[j-1]=data[j];
                    data[j]=temp;
                }
            }   
        }
    }


//选择排序
static void selectSort(int data[ ])
    {
        int k,temp;
        for(int i=1;i<=data.length-1;i++)
        {
            k=i-1;
             //找到最小的数的下标,记入k中
            for(int j=i;j<=data.length-1;j++)
            {
                if(data[j]<data[k])
                {
                    k=j;   
                }
            }
             //将最小的数和第i个数交换
            temp=data[i-1];
            data[i-1]=data[k];
            data[k]=temp;   
        }
    }


//二分查找
static int binarySearch(int data[ ],int key)
    {
        int left=0,right=data.length-1,mid;
        while(left<=right)
        {
            mid=(left+right)/2;
            if(key==data[mid])
                return mid;
            else if(key<data[mid])
                right=mid-1;
            else if(key>data[mid])
                left=mid+1;
        }
        return -1;
    }




谢谢
#8
syg54342010-10-14 19:26
除了这几个人,咋都这么不踊跃呢...
1