常用排序--冒泡/快速排序
来源:互联网 发布:贵州广电网络收费标准 编辑:程序博客网 时间:2024/06/05 13:57
冒泡排序是两个相临位置的数据进行比较,按照逻辑从大到小还是从小到大进行调换,确定一个数字为一趟.
•若文件初状为正序,则一趟起泡就可完成排序,排序码的比较次数为n-1,且没有记录移动,时间复杂度是O(n)
•若文件初态为逆序,则需要n-1趟起泡,每趟进行n-i次排序码的比较,且每次比较都移动三次,比较和移动次数均达到最大值∶O(n2)
•起泡排序平均时间复杂度为O(n2)
public class Maopao {public static void main(String[] args) {int [] target={5,3,4,2,11,8,7};int t =0;int length = target.length;for(int i=0;i<length-1;i++){for(int j=0;j<length-1;j++){if(target[j]<target[j+1]){t=target[j];target[j]=target[j+1];target[j+1]=t;}}System.out.println("第"+(i+1)+"趟排序结果");for(int sig1=0;sig1<target.length-1;sig1++){System.out.print(target[sig1]+"\t");}System.out.println("");}System.out.println("*********************最后结果*****************");for(int b:target){System.out.print(b+"\t");}}}
第1趟排序结果5431187第2趟排序结果5411873第3趟排序结果5118743第4趟排序结果1187543第5趟排序结果1187543第6趟排序结果1187543*********************最后结果*****************11875432
快速排序
public class KuaiPai {public static void main(String[] args) {int[] target={24,3,12,22,11,15,6};quickSort(target,0,target.length-1);for(int a:target){System.out.print(a+"\t");}}private static void quickSort(int[] a, int low, int high) { if(low<high){ //如果不加这个判断递归会无法退出导致堆栈溢出异常 int middle = getMiddle(a,low,high); //递归调用 quickSort(a, 0, middle-1);//基数左边 quickSort(a, middle+1, high);//基数右边 } }public static int getMiddle(int[]a,int left,int right){int tmp = a[left];while(left<right){while(right>left&a[right]>tmp){//右边往做移动right--;}while(right>left&a[left]<tmp){//左边往右移动left++;}if(left<right){//只要是两者不相遇会交换并且再次进行下去int t=0;t = a[right];a[right] = a[left];a[left]=t;}}a[left] = tmp;//左右相遇交换中间数据和基数return left;}}
快速排序是不稳定的排序。
快速排序的时间复杂度为O(nlogn)。
当n较大时使用快排比较好,当序列基本有序时用快排反而不好。
最坏情况O(n^2)
logn * n
平均时间复杂度是O(nlogn)
0 0
- 常用排序--冒泡/快速排序
- PHP常用排序算法 冒泡排序 快速排序 插入排序
- 快速排序 冒泡排序
- 快速排序、冒泡排序
- 冒泡排序 快速排序
- 快速排序、冒泡排序
- 冒泡排序、快速排序
- 冒泡排序、快速排序
- 冒泡排序,快速排序
- 冒泡排序,快速排序
- 冒泡排序、快速排序
- 冒泡排序,快速排序
- 冒泡排序、快速排序
- 冒泡排序,快速排序
- 快速排序 冒泡排序
- 冒泡排序、快速排序
- 冒泡排序-->快速排序
- 冒泡排序、快速排序
- Application类 的使用 ,设置全局变量
- C#多线程系列
- Linux Shell脚本面试问题大全
- Mongodb的windows服务安装和卸载
- 利用QtGraphicalEffects来使得自己的图像显示更加生动
- 常用排序--冒泡/快速排序
- sed 转译
- 安卓应用开发实战:[2]修改程序名称&标题
- CSS学习笔记(记录一些小技巧)
- Ubuntu上使用jsp去连接mysql的时候踢提示Access denied for user 'root'@'localhost' (using password: YES)的解决办法!!!
- 22、linux文件属性详解
- v4转v6
- 笔试——数据库、网络、操作系统(Linux)
- 2012年5月SAT香港真题解析