c++ qsort()第四个参数是用了函数指针来实现的,请问在java中怎么实现这种情况

解决方案 »

  1.   

    排序的话,Arrays.sort()//优化的快速排序,api写好了
    Collections.sort()//对类的排序实现Comparable接口的都可以排,包括Collection是修改的合并排序
    你要自己写?
      

  2.   

    qsort是C的,不是C++的,C++的是std::sort
      

  3.   

    是的,小弟想用java自己写一个泛型快速排序.类型似那个qsort()
    但是在C中它的第四个参数是用函数指针实现的.在java中没有这种语法.
    请问要怎么样实现
      

  4.   


    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>int sort_function( const void *a, const void *b);char list[5][4] = { "cat", "car", "cab", "cap", "can" };int main(void)
    {
       int  x;   qsort((void *)list, 5, sizeof(list[0]), sort_function);
       for (x = 0; x < 5; x++)
          printf("%s\n", list[x]);
       return 0;
    }int sort_function( const void *a, const void *b)
    {
       return( strcmp((char *)a,(char *)b) );
    }interface StrComp {
        int comp(String str1, String str2);
    }class CompImpl implements StrComp{
        public int comp(String str1, String str2) {
            return str1.compareTo(str2);
        }}public class ConOut{
        public static void main(String[] args) {
            String[] l = { "cat", "car", "cab", "cap", "can" };
            qsort(l, new CompImpl());    }    public static void qsort(String[] sList, StrComp comp) {
            // 你得QuickSort代码。
            System.out.println(comp.comp(sList[1], sList[2]));
        }}
    其实Java就有现成的类库,你可以使用啊?就像C的qsort一样。
    Arrays.sort多好用?
    对于基本类型QuickSort
    对于对象叔组MergeSort