排序算法总结 和 java和c++中 sort方法比较

插入排序:是多次交换和移动,是稳定排序

交换排序:有冒泡排序(直接交换),快排序(分类思想)前者是稳定的,后者是不稳定的。

选择排序:多次比较,一次移动,不稳定的。

具体思想过程可百科。

java和c++中 sort方法比较

c++中需引用 #include<algorithm>头文件

int[] a={1,2,4,2,6,9,5,7,8,0,3}

sort(a,a+9)//默认升序

java中对于Array.sort Collector.sort都有与之对于的静态方法

Array.sort(a);//默认升序,可加参数

这两个不加参数的用,都是升序排序数组

但是对于sort(a,a+9,cmp)和Array.sort(a,new Comparator<myClass>())用法,却是不一样的

1、在c++中  int cmp(int a,int b){return a<b;} //默认升序  如果改为return a>b; 则为降序

2、在java中Comparator的方法compare的方法中  

int compare(int a,int b){

return a-b;//升序

//return b-a;//降序

//return a.cmpareTo(b); //升序,

// flag = a.compareTo(b);

//if (flag>0) return 1;  else if(flag == 0) return 0;  else return -1;  //升序

}

总结,假设序列中默认是升序排列(a<b),则对于c++中的cmp返回为1,或是真,大于0的值时,不进行元素位置交换;而在java中 compare 返回为真时,进行元素位置交换;

点赞