安卓快速排序与冒泡排序
冒泡排序
private void swap(int[] arrays, int i, int j) { int temp; temp = arrays[i]; arrays[i] = arrays[j]; arrays[j] = temp; } public int[] arrayIntSort(int[] array) { for (int i = 1; i < array.length; i++) { for (int j = 0; j < array.length - i; j++) { if (array[j] > array[j + 1]) { swap(array, j, j + 1); } } } return array; }
快速排序
private void quickSort(int[] array, int start, int end) { int left = start; int right = end; if (left < right) { int temp = array[left]; while (left != right) { while (left < right && temp <= array[right]) right--; array[left] = array[right]; while (left < right && temp >= array[left]) left++; array[right] = array[left]; } array[right] = temp; quickSort(array, start, left - 1); quickSort(array, right + 1, end); } }
c++冒泡排序写法
void swap(jint *arrays, int i, int j) {int temp;temp = arrays[i];arrays[i] = arrays[j];arrays[j] = temp;
}JNIEXPORT jintArray JNICALL
Java_com_cpf_ndkdemo_MainActivity_arrayIntSortByNative(JNIEnv *env, jobject instance,jintArray array_) {jint *array = env->GetIntArrayElements(array_, NULL); int length = env->GetArrayLength(array_); for (int i = 1; i < length; i++) { for (int j = 0; j < length - i; j++) { if (array[j] > array[j + 1]) { swap(array, j, j + 1); } } } jintArray jintArray = env->NewIntArray(length); env->SetIntArrayRegion(jintArray, 0, length, array); env->ReleaseIntArrayElements(array_, array, 0); return jintArray; }
c++快速排序写法
void fastSort(jint *array, jint start, jint end) {int left = start;int right = end;if (left < right) { int temp = array[left]; while (left != right) { while (left < right && temp <= array[right]) right--; array[left] = array[right]; while (left < right && temp >= array[left]) left++; array[right] = array[left]; } array[right] = temp; fastSort(array, start, left - 1); fastSort(array, right + 1, end); } } JNIEXPORT jintArray JNICALL Java_com_cpf_ndkdemo_MainActivity_arrayFastIntSortByNative(JNIEnv *env, jobject instance, jintArray array_, jint start, jint end) { jint *array = env->GetIntArrayElements(array_, NULL); fastSort(array, start, end); jintArray jintArray = env->NewIntArray(end + 1); env->SetIntArrayRegion(jintArray, 0, end + 1, array); env->ReleaseIntArrayElements(array_, array, 0); return jintArray; }
快速排序波动大,冒泡排序更稳定,数据量越大快速排序速度优势越明显;
在数据大多数顺序正确的情况下冒泡排序可能更快,而数据越混乱快速排序越快;
转载于:https://www.cnblogs.com/xgjblog/p/9413063.html
安卓快速排序与冒泡排序相关推荐
- python实现冒泡排序算法的非递归版本_python排序算法速度比较:快速排序,归并排序,冒泡排序...
前言 原理就不在这里说了,好多大神肯定比我这个初学者讲的好很多,推荐去B站看视频讲解,跟着手敲代码 为什么选这三个排序呢? 首先快排是必须掌握的 看看快排在最坏的情况下(O(n²)),且不使用辅助空间 ...
- 快速排序,冒泡排序时间复杂度推导
快速排序,冒泡排序时间复杂度推导 快速排序时间复杂度分析: 数组长度为n 1,平均复杂度: t(n) = cn + 2t(n/2) = cn + 2(cn/2 + 2t(n/4)) = 2cn + 4 ...
- 快速排序与冒泡排序的效率对比
快速排序与冒泡排序的效率对比 鄙人在这里谈一下自己对冒泡排序与快速排序的看法,在经过详细的浏览代码以及文章后,我们可以得出以下结论: 1 快速排序是冒泡排序的一种改进,跟冒泡排序有一定的区别. 2. ...
- c语言排序(快速排序,冒泡排序,选择排序,插入排序,桶排序)
快速排序,冒泡排序,选择排序,插入排序,桶排序 文章目录 什么是排序 快速排序 实现流程 代码 改进版快速排序代码 注意点 冒泡排序 实现流程 实现代码 选择排序 实现代码 插入排序 实现代码 桶排序 ...
- C++十种排序方法(快速排序、冒泡排序等等)
C++十种排序方法(快速排序.冒泡排序等等) 一.冒泡排序 1.概念及思路:冒泡排序顾名思义就是大的数沉下去,小的数浮上来,就跟气泡在水底浮上来一样:基本的思路很简单,就是相邻的两个数相比较,如果前面 ...
- 归并排序,快速排序,冒泡排序,选择排序,基数排序,桶排序,堆排序(c++实现)
一.归并排序 #include<iostream> using namespace std; void Merge(int arr[],int low,int mid,int high); ...
- php递归实现冒泡排序,排序算法之PHP版快速排序、冒泡排序
一.快速排序 1.简介 快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序 n 个项目要Ο(n log n)次比较.在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见.事实上,快速排序 ...
- php实现快速排序和冒泡排序
快速排序 实现思路:把第一个元素作为标记,依次判断后续的值,如果小于它则放在左边,如果大于它则放右边,同理把左右两部分看成一个整体一直递归,最后再数组拼接起来 它的最优时间复杂度为O(nlogn)[以 ...
- python 冒泡排序 交换次数_(Python)交换排序(气泡排序、快速排序),冒泡排序...
交换排序 -- 冒泡排序 基本思想:从一端开始,逐个比较相邻的两个元素,发现倒序即交换.这里按从后往前(从下往上)逐个比较相邻元素. 数组冒泡排序过程 def bubbleSort(arr): n = ...
- 链表的快速排序及冒泡排序
快速排序的思路 众所周知,快速排序的核心思想是:选定基准值并排好其位置, 根据基准值将序列分割两半,分别递归之. 单链表寻找基准点的方法:用两个指针i和j,这两个指针均往next方向移动,移动的过程中 ...
最新文章
- centos把mysql移到数据盘_Centos转移Mysql的数据位置
- Scanner读取一个int数组
- Java面试题之有没有有顺序的Map实现类,如果有,他们是怎么实现有序的?
- 路由算法及路由协议(详解)
- python中的字典和集合_Python 字典和集合
- null或空值的判断处理-java
- c语言char float混合类型运算,求int long char double float 在混合运算中的自动转换规则 win 32位系统。...
- 零基础学Python--------第3章 流程控制语句
- Springboot集成JavaMailSender发送邮件
- 多智能体通信:MAGNet用于深度多智能体强化学习的多智能体图网络
- salt returner mysql_saltstack (4) 用mysql存储 salt 返回值
- Linux系统启动过程及其修复过程简析(CentOS5、6)
- Androidg 改变CheckBox下的选中与未选中图片
- win10设置计算机关机时间,win10怎样固定时间关机_win10怎样设置电脑关机时间设置...
- 函数day_of_year 和month_day
- JavaScript---网络编程(8)-DHTML技术演示(1)
- Unity 编辑器扩展菜单
- 关于RECON-NG相关问题解决
- win10创意者更新是什么 Win10创意者更新升级方法
- matlab 工具箱 径向基,精确径向基(matlab工具箱)
热门文章
- [JUC-2]AbstractQueuedSynchronizer源码分析
- linux设备/驱动的注册
- 第二部分 python基础 day10\11\12 运算符与基本数据类型
- 双十一大战收官:荣耀反超苹果,以新思维新模式傲视群雄
- PHP之路——Xdebug扩展
- likely,unlikely宏与GCC内建函数__builtin_expect()
- Python 之操作so动态库
- Unity app调试
- Nginx源码阅读 --- http模块 --- TCP连接过程
- mvn install跳过测试