一 :在项目中可能会因为处理某些数据会需要用到排序算法,比如大屏项目,会从数据库中查找一些数据,并展示在页面上;良好的算法可以节省系统资源的开销,比如java开发,对象都存在堆中,如果对象比较大,消耗的内存就比较大,算法还可以俭省时间上代码的运行;这里简单介绍一下冒泡排序。
public class BubbleSort { public static void main(String[] args){ int[] a = {4,1,8,9,2,7,3,6,12}; bubbleSort(a,a.length); } public static void bubbleSort(int a[], int len) { //1代表交换,0代表未交换 int flage=1; int x; int l=len; while (l>1 ){ //初始化无交换 flage=0; for(int j=0;j<l-1;j++){ if (a[j]>a[j+1]){ flage=1; x=a[j]; a[j]=a[j+1]; a[j+1]=x; } } l--; } for (int i=0;i<a.length;i++){ System.out.print(a[i]); } } }
二:排序原理:
1.将第n个数与n+1个数比较;n从1开始;如果n位置的数大于n+1位置的数,交换,否则不交换;n从1到n完成一轮比较操作;把最大数放在n的位置上;n做减1;
2.对n-1个数进行第二轮排序;最大数放在n-1位置上;
3.重复上述过程,直到在一趟排序过程中没有发生交换为止;
三:时间复制度和空间复杂度
T(n)=O(n²)
S(n)=O(1)