插入排序 Java实现 插入排序 Java实现

原文链接: https://blog.csdn.net/bingocoder/article/details/88929393

插入排序 Java实现


    下面是直接插入排序算法的图解:

        1. 先有一个待排序的数组 

         2.i 记录已经排好序的数组的长度,在 i 之前的数组已经按照从小到大的顺序排列。

           在 i 移动的时候。j 的移动范围在数组开始到i所指向的位置。

           通过 j 的移动,将 j 指向的元素不断归位,以实现 i 之前的元素的顺序排列。 

           i 从数组的开始移动到结尾,当 i 等于数组的长度的时候,所有元素就按照从小到大的顺序排列好了。


实现代码:


  
  
  1. package sort;
  2. public class InsertionSort {
  3. public static void main(String[] args) {
  4. int [] a = { 6, 5, 2, 4, 9, 7, 8, 5, 1, 4};
  5. print(a);
  6. sort(a);
  7. print(a);
  8. }
  9. static void sort(int[] array){
  10. for( int i = 1;i< array.length;i++){
  11. //数组的第一个元素被当作已经排好序的一个数,所以i从1开始。
  12. for( int j = i;j> 0;j--){
  13. if( array[j]< array[j -1]){
  14. swap( array,j,j -1);
  15. }
  16. }
  17. }
  18. }
  19. static void swap(int[] array,int i,int j){
  20. int temp = array[i];
  21. array[i] = array[j];
  22. array[j] = temp;
  23. }
  24. static void print(int[] array){
  25. for ( int i = 0;i < array.length; i++ ){
  26. System.out.print( array[i]+ " ");
  27. }
  28. System.out.println( "\n");
  29. }
  30. }

       运行结果:

                                                                         

猜你喜欢

转载自blog.csdn.net/qq_41933149/article/details/102311243