【LintCode-463】整数排序(Java实现-冒泡排序/选择排序/插入排序)
来源:互联网 发布:php 协程 异步 编辑:程序博客网 时间:2024/06/05 10:06
冒泡排序:
public void sortIntegers(int[] A) { for(int j=0;j<A.length-1;j++) for(int i=0;i<A.length-1-j;i++){ if(A[i]>A[i+1]){ int temp=A[i]; A[i]=A[i+1]; A[i+1]=temp; } } }
个人解题思路:
对相邻的元素进行两两比较,如果前者比后者大,就相互交换。
选择排序:
public void sortIntegers(int[] A) { for(int i=0;i<A.length-1;i++){ int k=i; for(int j=i+1;j<A.length;j++){// k=A[k]>A[j]?j:k; //也可以替换下一行的判断语句 if(A[k]>A[j]){ k=j; } } //遍历当前数组找出最小值数组位置,如果位置与初始位置不同,则进行交换。 if(k!=i){ int tmp=A[i]; A[i]=A[k]; A[k]=tmp; } } }
个人解题思路:
每一趟从待排序的数据元素中选择最小的一个元素作为首元素
插入排序:
public void sortIntegers(int[] A) { //从第二位开始,也就是A[1],将其插入已排序好的数组中 for(int i=1;i<A.length;i++){ if(A[i]<A[i-1]){ int tmp=A[i]; int j=i; while(j>=1&&tmp<A[j-1]){ //前一个的值赋予给当前值 A[j]=A[j-1]; j--; } A[j]=tmp; } } }
个人解题思路:
每一步将下一个元素,插入到前面已经排好序的有序序列中去,并找到相应位置使序列依然处于有序。
如果您有更好的解法,欢迎您在留言区补充,感谢!!
阅读全文
0 0
- 【LintCode-463】整数排序(Java实现-冒泡排序/选择排序/插入排序)
- 【LintCode-463】整数排序(Java实现-冒泡排序优化)
- 冒泡排序、选择排序、插入排序(Java实现)
- 冒泡排序、选择排序、直接插入排序(java实现)
- java实现冒泡排序,插入排序,选择排序,快速排序
- Java基本排序实现--插入排序,选择排序,冒泡排序
- #.java实现排序算法:插入排序、选择排序、冒泡排序
- Java基本排序(插入排序,冒泡排序,选择排序)
- 冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序java实现
- Java实现排序(快速排序、冒泡排序、选择排序、基数排序、插入排序)
- 排序(快排,冒泡,堆排序,插入排序,归并排序,选择排序)算法Java实现
- Java冒泡排序,插入排序,选择排序
- java冒泡排序,选择排序,插入排序
- [JAVA]选择排序,插入排序,冒泡排序
- java-------冒泡排序,选择排序,插入排序
- java 冒泡排序 插入排序 选择排序
- Java冒泡排序,插入排序,选择排序
- java实现各种基础排序(冒泡排序、快速排序、直接选择排序、堆排序、直接插入排序、归并排序)
- Visual Studio 2015开了个小玩笑
- 设计模式(4)——原型 Prototype
- Java并发编程:阻塞队列
- A
- 计算机码制--深入理解 原码、反码、补码
- 【LintCode-463】整数排序(Java实现-冒泡排序/选择排序/插入排序)
- leetcode 226. Invert Binary Tree(C语言,二叉树,递归)54
- Java面试宝典-2017
- AI机器学习新手上路-决策树
- 可扩展的对话框
- DHCP服务器典型配置举例(路由应用)
- J
- 漫步最优化三十八——非二次函数最小化
- [2017.11.04]作业09(c)