学习笔记--排序、进制转换
来源:互联网 发布:阿里云app图标 编辑:程序博客网 时间:2024/05/01 10:39
摘要
数组和基本数据类型的内容比较简单不做详细的记录,但是在讲解他们的过程中涉及到的排序和进制转换、拆半查找比较难所以做特别的笔记
1.排序
i.选择排序
思想:在数组中选择出最大的值放在第一位,然后在剩下的之中查找最大的放在剩下数据的第一位,直到剩下的数据为空。
实现代码如下:
public static void sort(int[] x){for(int i = 0;i<x.length;i++){for(int y = i+1;y<x.length;y++){if(x[i]<x[y]){int temp = x[y];x[y] = x[i];x[i] = temp;}}}}
ii.冒泡排序
思想:从数组的第二个开始如果这个数比前面的值大就向前移动直到无法移动,直到所有的数都无法移动。
实现代码如下:
public static void sort(int[] x){for(int i = 1;i<x.length;i++){int y = i-1;int pos = i;for(;y>=0;y--){if(x[pos]>x[y]){int temp = x[pos];x[pos] = x[y];x[y] = temp;pos = y;}else{break;}}}}
iii.快速排序
思想:选取第一个值作为关键字,从末尾开始查找第一个小于它的值,然后再从开头查找第一个大于它的值,然后进行交换,直到,所有数据完成排序。
注意:这种排序是不稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动
实现代码如下:
public static void quickSort(int[] x,int start,int end){if(start>=end){return;}else{int pos = getPost(x, start, end);if(pos>start){int temp = x[pos];x[pos]=x[start];x[start] = temp;}quickSort(x,start,pos-1);quickSort(x, pos+1, end);}}private static int getPost(int[] x, int start, int end) {int l1 = end;int l2 = start+1;while(l1>=l2){for(;l1>=l2;l1--){if(x[l1]>x[start]){break;}}for(;l2<=l1;l2++){if(x[l2]<x[start]){break;}}if(l1>l2){int temp = x[l1];x[l1] = x[l2];x[l2] = temp;}}return l1;}
2.进制转换
我们知道计算机当中采用二进制进行数据表示,为了简化表示我们有使用八进制和十六进制,八进制用3位二进制表示一位,十六进制用4位表示一位。将十进制转化成对应的进制的时候算法基本一致只是移动的位数和取余数的位数不同而已,所以我们可以进行代码优化,优化后代码如下:
(int num,int offeset){if(num ==0){return "0";}else{char[] table = new char[]{'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};StringBuilder sb = new StringBuilder();int yu = (int) Math.pow(2,offeset )-1;while(num!=0){sb.append(table[num&yu]);num = num>>offeset;}return sb.reverse().toString();}}
进制转换如下:
public static Stringtrains(100,1);//二进制trains(100,3);//八进制trains(100,4);//十六进制
总结
上述所说的内容在实际的开发中很少用到,但是通过理解这些内容,有利于扩展思维,能提高分析能力。
- 学习笔记--排序、进制转换
- [黑马程序员]进制转换学习笔记
- C#学习笔记-进制转换
- 【Java学习笔记】进制转换
- 学习笔记-java进制转换
- Java基础04天 学习笔记_数组进阶(数组排序,二分查找,进制转换,二维数组)
- 《python》学习笔记(Day3),数据处理:转换、清洗、排序
- 进制转换、冒泡排序、选择排序
- JAVA学习笔记->进制转换,运算符
- Java学习笔记----进制转换及数据类型
- java入门学习笔记,不同进制之间的转换!
- 学习笔记------数据结构(C语言版)进制转换
- c语言学习笔记6之进制转换
- python进制转换——py学习笔记
- 【笔记】进制转换
- 排序学习笔记1
- 排序学习笔记
- 排序学习笔记
- C#之缓存使用
- Eclipse 快捷键失效,重新设置规则
- 对象分析方法
- 江城子.奶奶十年祭
- android程序的调试
- 学习笔记--排序、进制转换
- cocos2d-html5里面修改了js之后,真机查看效果时,确保 Xcode 每次 Build 时都自动更新资源
- 使用Unity 实现 AOP
- 对于struct file_operations中ioctl消失的学习笔记
- linux class_register
- 如何查看端口号是否被占用
- Java类型和本地类型对应情况(JNI基础)
- 统计向oracle每个表中插入一条记录时 , 占用的最大空间
- RMI2.5.0 插件破解