插入排序(Insertion-sort)
2014-10-22 20:46
267 查看
排序问题
输入:n个数(a1,a2,a3...)
输出:输入序列的一个重排列(a1',a2',a3'...),使得a1'>=a2'>=a3'....
插入排序算法:属于对少量元素进行排序的算法,简要过程是两层循环,外层循环是从第二位开始向右移动;内层循环即从外层循环的位置开始不断向左对比,当出现当前元素大于前一个元素时,进行交换并且循环值加一,否则跳出内层循环,直到循环到第一个元素。
输入:n个数(a1,a2,a3...)
输出:输入序列的一个重排列(a1',a2',a3'...),使得a1'>=a2'>=a3'....
插入排序算法:属于对少量元素进行排序的算法,简要过程是两层循环,外层循环是从第二位开始向右移动;内层循环即从外层循环的位置开始不断向左对比,当出现当前元素大于前一个元素时,进行交换并且循环值加一,否则跳出内层循环,直到循环到第一个元素。
import java.util.Scanner; public class InsertSort { public static void main(String[] args) { // TODO Auto-generated method stub int[] myData; System.out.println("请依次输入需要排列的数字,并以空格间隔(例如5 8 9。。):"); Scanner input = new Scanner(System.in); String tempStr=input.nextLine(); input.close(); String [] str = tempStr.split(" "); myData=new int[str.length]; for(int i=0;i<str.length;i++) { int tempEle=Integer.parseInt(str[i]); myData[i]=tempEle; } InsertSort myinsersort = new InsertSort(); myinsersort.SortVec(myData); } private void SortVec(int[] tempData) { int tempEle; for(int i=1;i<tempData.length;i++) { for(int j=i-1;j>=0;j--) { if(tempData[j+1]>tempData[j]) { tempEle=tempData[j+1]; tempData[j+1]=tempData[j]; tempData[j]=tempEle; }else break; } } for(int i=0;i<tempData.length;i++) System.out.print(tempData[i]+" "); System.out.println(); System.out.println("排序成功"); } }
相关文章推荐
- 173. 链表插入排序 (insertion-sort-list)(c++)----lintcode面试题之链表
- 插入排序(InsertionSort)
- 插入排序(insertion sort)算法实现
- 插入排序 insertion_sort
- insertion sort 插入排序
- 插入排序 直接插入排序的PHP实现 Straight Insertion Sort
- LeetCode Insertion Sort List(单链表插入排序)
- 排序算法总结之插入排序 Insertion Sort
- 【LeetCode-面试算法经典-Java实现】【147-Insertion Sort List(链表插入排序)】
- Insertion Sort List 使用插入排序将链表排序
- 插入排序(Insertion Sort)
- 静态链表插入排序(List Insertion Sort)算法
- [C++]LeetCode: 126 Insertion Sort List (插入排序链表)
- [LeetCode147]Insertion Sort List(链表插入排序)
- AOJ-ALDS1_1_A Insertion Sort【插入排序】
- 【算法】插入排序 insertion_sort
- 排序算法 之 插入排序InsertionSort
- 经典排序算法 – 插入排序Insertion sort
- 插入排序(Insertion Sort)
- 算法排序--插入排序(insertion sort)