排序算法(Apex 语言)
/*
Code function : 冒泡排序算法
冒泡排序的优点:每进行一趟排序,就会少比较一次,因为每进行一趟排序都会找出一个较大值
时间复杂度:O(n*n)
空间复杂度:1
*/
List<Integer> arrayList = new List<Integer>{3,5,4,2,6,1,10,7,8,11,4,6,13};
//外层循环控制排序趟数
for(Integer i = 1; i< arrayList.size(); i++) { //内层循环控制每一趟排序多少次 。 每次最后面的值都是最大值了 。 所以后面的都可以不用排序了。
for(Integer j = 0; j< arrayList.size()-1; j++) {
if(arrayList[j] > arrayList[i]) {
Integer temp = arrayList[j];
arrayList[j] = arrayList[i];
arrayList[i] = temp;
}
}
System.debug(LoggingLevel.INFO, '*** arrayList111: ' + arrayList);
}
System.debug(LoggingLevel.INFO, '*** arrayList: ' + arrayList);
插入排序代码如下:
/*
Code function : 插入排序算法
时间复杂度:O(n*n)
空间复杂度:O(1)
*/
List<Integer> arrayList = new List<Integer>{3,5,4,2,6};
//外层循环控制排序趟数
for(Integer i = 1; i< arrayList.size(); i++) {
Integer j;
Integer p = arrayList[i];
//内层循环控制剩下已经排序的数量
for(j = i-1; j >= 0; j--) {
if(arrayList[j] > p) {
//如果要插入,则后面的数往后平移一个单位
arrayList[j+1] = arrayList[j];
}
else{
break;
}
}
arrayList[j+1]=p;
}
插入排序算法如下:
/*
Code function : 选择排序算法
选择排序算法的优点:每次遍历,找出最小值, 直到i=size-1
时间复杂度:O(n*n)
空间复杂度:1
*/
List<Integer> arrayList = new List<Integer>{3,5,4,6,1,10,7,4,6,13};
//外层循环控制排序趟数,每次默认把第一个值当成最小值
for(Integer i = 0; i< arrayList.size()-1; i++) {
Integer min = arrayList[i]; //内层循环控制每一趟排序多少次。往后比较
for(Integer j = i+1; j< arrayList.size()-1; j++) {
//如果后面遇到更小值,则和刚开始定义的最小值交换
if(min > arrayList[j]){
arrayList[i] = arrayList[j];
arrayList[j] = min;
min = arrayList[i]; }
}
System.debug(LoggingLevel.INFO, '*** arrayList111: ' + arrayList);
}
System.debug(LoggingLevel.INFO, '*** arrayList: ' + arrayList);
排序算法(Apex 语言)的更多相关文章
- 快色排序算法(C语言描述)
快速排序 算法思想 快速排序采用了一种分治策略,学术上称之为分治法(Divide-and-Conquer Method). 哨兵(如下算法中的key) 每趟排序将哨兵插入到数组的合适位置,使得哨兵左侧 ...
- 排序算法c语言描述---堆排序
排序算法系列学习,主要描述冒泡排序,选择排序,直接插入排序,希尔排序,堆排序,归并排序,快速排序等排序进行分析. 文章规划: 一.通过自己对排序算法本身的理解,对每个方法写个小测试程序.具体思路分析不 ...
- 各种排序算法(C语言)
#include <stdlib.h> #include <stdio.h> void DataSwap(int* data1, int* data2) { int temp ...
- 排序算法c语言描述---冒泡排序
排序算法系列学习,主要描述冒泡排序,选择排序,直接插入排序,希尔排序,堆排序,归并排序,快速排序等排序进行分析. 文章规划: 一.通过自己对排序算法本身的理解,对每个方法写个小测试程序. 具体思路分析 ...
- 排序算法c语言描述---选择排序
排序算法系列学习,主要描述冒泡排序,选择排序,直接插入排序,希尔排序,堆排序,归并排序,快速排序等排序进行分析. 文章规划: 一.通过自己对排序算法本身的理解,对每个方法写个小测试程序. 具体思路分析 ...
- 【转】九大排序算法-C语言实现及详解
概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存. 我们这里说说八大排序就是内部排序. 当n较大, ...
- 排序算法C语言实现
大学有一门课程叫做数据结构,严蔚敏的课本,其中详细介绍了集中经典的排序算法,学习复习反复几次,但是直到现在仍然只记得名字了,所以想记录下来,随时复习直至牢记于心.经常面试的朋友知道,排序算法在面试中出 ...
- 排序算法C语言实现——冒泡、快排、堆排对比
对冒泡.快排.堆排这3个算法做了验证,结果分析如下: 一.结果分析 时间消耗:快排 < 堆排 < 冒泡. 空间消耗:冒泡O(1) = 堆排O(1) < 快排O(logn)~O(n) ...
- 史上最全单链表的增删改查反转等操作汇总以及5种排序算法(C语言)
目录 1.准备工作 2.创建链表 3.打印链表 4.在元素后面插入元素 5.在元素前面增加元素 6.删除链表元素,要注意删除链表尾还是链表头 7.根据传入的数值查询链表 8.修改链表元素 9.求链表长 ...
随机推荐
- No connection could be made because the target machine actively refused it [::1]:808
No connection could be made because the target machine actively refused it [::1]:808 1.首先查看端口占用情况, 在 ...
- JAVA设计模式之【桥接模式】
桥接模式 蜡笔中颜色和型号之间存在耦合 毛笔中,颜色和型号解耦了 如果软件系统中某个类存在两个独立变化的维度,桥接模式可以将两个维度分离出来 角色 抽象类 扩充抽象类 实现类接口 提供基本操作 抽象类 ...
- [codeforces 852 D] Exploration Plan 解题报告 (二分+最大匹配)
题目链接:http://codeforces.com/problemset/problem/852/D 题目大意: 有V个点,N个队伍,E条边,经过每条边有个时间,告诉你初始N个队伍的位置,求至少有K ...
- POJ 3342 树形DP+Hash
这是很久很久以前做的一道题,可惜当时WA了一页以后放弃了. 今天我又重新捡了起来.(哈哈1A了) 题意: 没有上司的舞会+判重 思路: hash一下+树形DP 题目中给的人名hash到数字,再进行运算 ...
- VC6之MAP文件生成及格式
文件生成方式: 在 VC 中,我们可以按下 Alt+F7 ,打开“Project Settings”选项页,选择 C/C++ 选项卡,并在最下面的 Project Options 里面输入:/Zd , ...
- passwd文件
1.查看/etc/passwd [admin@localhost /]$ cat -n /etc/passwd 1 root:x:0:0:root:/root:/bin/bash 2 bin:x:1: ...
- vue项目input的placeholder根据用户的选择改变
html部分 <el-input :placeholder="holder" v-model="searchKey"> <el-select ...
- logging.config模块---使用配置文件管理logger
logging配置文件 一.使用到的模块: logging.config 官方文档: https://docs.python.org/3/library/logging.config.html 非官方 ...
- 【BZOJ4448】【SCOI2015】情报传递
这题面错别字真tm多 题意: Description 奈特公司是一个巨大的情报公司,它有着庞大的情报网络.情报网络中共有n名情报员.每名情报员口J-能有若T名(可能没有)下线,除1名大头日外其余n-1 ...
- NOIp2018模拟赛三十二
继续挂成傻逼 成绩:100+0+10(90)=110 A全场一眼题,C没取模挂八十分,然后没特判特殊情况又挂十分 A:[agc009b]tournament(太简单,咕了) B:[ATC2142]Bu ...