排序法(整理)
2015-12-28 12:53
417 查看
排序法有二十多种,最常见的有:冒泡排序法、交换排序法、快速排序法等等。
一、冒泡排序法
冒泡排序法是最简单也最容易理解的,如果实在想不明白,可以看看这个视频(冒泡排序法视频:http://v.youku.com/v_show/id_XMzg2NTI5Mjg0.html?from=s1.8-1-1.2)
如果用冒泡法升序排列,就是相邻两个数字比大小,从第一个位置的数和第二个位置的数开始比较,大的数字放到第二个位置,然后第二个位置的数字和第三个位置的数字进行比较,大的数字放到后面位置,依次类推。
冒泡排序法的实例代码:
二、快速排序法
快速排序法的视频(快速排序法:http://v.youku.com/v_show/id_XNDI0ODk4NTMy.html?from=s1.8-1-1.2 或者 http://v.youku.com/v_show/id_XMTQyMDc2ODAxNg==.html?from=s1.8-1-1.2)
这个排序法就是头跟尾比较。
快速排序法的实例代码:
一、冒泡排序法
冒泡排序法是最简单也最容易理解的,如果实在想不明白,可以看看这个视频(冒泡排序法视频:http://v.youku.com/v_show/id_XMzg2NTI5Mjg0.html?from=s1.8-1-1.2)
如果用冒泡法升序排列,就是相邻两个数字比大小,从第一个位置的数和第二个位置的数开始比较,大的数字放到第二个位置,然后第二个位置的数字和第三个位置的数字进行比较,大的数字放到后面位置,依次类推。
冒泡排序法的实例代码:
import java.util.Random; public class BubbleSortDemoTest{ public static void main(String[] args){ Random random = new Random(); int[] number = new int[10]; for(int i = 0; i < 10; i++){ number[i] = random.nextInt(41) + 10; System.out.print(number[i] + " "); } System.out.println(); bubbleSort(number); for(int i = 0; i< number.length; i++){ System.out.print(number[i] + " "); } } public static void bubbleSort(int[] array){ for(int i = 0; i< array.length - 1; i++){ for(int j = 0; j < array.length - i - 1; j++){ if(array[j] > array[j+1]){ int temp = array[j]; array[j] = array[j+1]; array[j+1] = temp; } } } } }
二、快速排序法
快速排序法的视频(快速排序法:http://v.youku.com/v_show/id_XNDI0ODk4NTMy.html?from=s1.8-1-1.2 或者 http://v.youku.com/v_show/id_XMTQyMDc2ODAxNg==.html?from=s1.8-1-1.2)
这个排序法就是头跟尾比较。
快速排序法的实例代码:
import java.util.Random; public class QuikSortDemoTest{ public static void main(String[] args){ Random random = new Random(); int[] number = new int[10]; for(int i = 0; i < 10; i++){ number[i] = random.nextInt(41) + 10; System.out.print(number[i] + " "); } System.out.println(); quikSort(number, 0, 9); for(int i = 0; i < number.length; i++){ System.out.print(number[i] + " "); } } public static void quikSort(int[] array, int L, int R){ int i = L; int j = R; int pivot = array[(L + R) / 2]; while(i <= j){ while(array[i] < pivot){ i++; } while(array[j] > pivot){ j--; } if(i <= j){ int temp = array[i]; array[i] = array[j]; array[j] = temp; i++; j--; } } if(L < j){ quikSort(array, L, j); } if(i < R){ quikSort(array, i, R); } } }
相关文章推荐
- Android计时器TimerTask,Timer,Handler
- 深入C#中的事件
- 累加直方图 Cumulative Histogram
- 仿QQ新浪主界面底部导航与中间按钮点击弹出以及返回键点击返回效果
- 日常使用 Git 的 19 个建议
- server2008 r2 系统桌面级使用优化
- 三种方式获得手机屏幕的宽和高
- JMeter(一)在mac下安装Jmeter及问题Unable to access jarfile ./ApacheJMeter.jar 解决
- iOS刷新某个cell时候crash
- leetcode -- Burst Balloons -- 重点dp
- Android Studio之同一窗口打开项目
- Xcode export/upload error: Your session has expired. Please log in 解决方法
- Android反编译(未混淆的apk)
- 数据结构:关于AVL树的平衡旋转详解
- VC++ 用WinInet发送HTTP请求和上传文件
- 数据结构:关于AVL树的平衡旋转详解
- Android反编译(未混淆的apk)
- Linux Resin 安装配置
- FloatingActionButton增强版,一个按钮跳出多个按钮--第三方开源--FloatingActionButton
- iOS错误提示:-[UITextSelectionView chatTextViewTextChange]: unrecognized selector sent to instance 0x7f