排序算法(Apex 语言)

 1 /*
 2  Code function : 冒泡排序算法
 3  冒泡排序的优点:每进行一趟排序,就会少比较一次,因为每进行一趟排序都会找出一个较大值
 4  时间复杂度:O(n*n)
 5  空间复杂度:1
 6 */
 7 List<Integer> arrayList = new List<Integer>{3,5,4,2,6,1,10,7,8,11,4,6,13};
 8 //外层循环控制排序趟数
 9 for(Integer i = 1; i< arrayList.size(); i++) { 
10 
11     //内层循环控制每一趟排序多少次 。 每次最后面的值都是最大值了 。 所以后面的都可以不用排序了。
12     for(Integer j = 0; j< arrayList.size()-1; j++) { 
13         if(arrayList[j] > arrayList[i]) {
14             Integer temp = arrayList[j];
15             arrayList[j] = arrayList[i];
16             arrayList[i] = temp;
17         }
18     }
19 System.debug(LoggingLevel.INFO, '*** arrayList111: ' + arrayList);
20 }
21 System.debug(LoggingLevel.INFO, '*** arrayList: ' + arrayList);

插入排序代码如下:

 1 /*
 2 Code function : 插入排序算法 
 3 时间复杂度:O(n*n)
 4 空间复杂度:O(1)
 5 */
 6 List<Integer> arrayList = new List<Integer>{3,5,4,2,6};
 7 //外层循环控制排序趟数
 8 for(Integer i = 1; i< arrayList.size(); i++) {
 9   Integer j;
10   Integer p = arrayList[i];
11   //内层循环控制剩下已经排序的数量
12   for(j = i-1; j >= 0; j--) {
13     if(arrayList[j] > p) {
14         //如果要插入,则后面的数往后平移一个单位
15       arrayList[j+1] = arrayList[j];
16     }
17     else{
18       break;
19     }
20   }
21   arrayList[j+1]=p;
22 }

猜你喜欢

转载自www.cnblogs.com/asand/p/9366095.html
今日推荐