當前位置:
首頁 >
数据结构:插入排序(Insertion sort)
發布時間:2025/6/15
39
豆豆
生活随笔
收集整理的這篇文章主要介紹了
数据结构:插入排序(Insertion sort)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
package com.sortbasic;import java.util.Random;public class InsertionSort {// 數組private static int[] arr = null;// 隨機生成數組// 生成有n個元素的隨機數組,每個元素的隨機范圍為[rangeL, rangeR]public static int[] generateRandomArray(int n, int rangeL, int rangeR){int[] arr = new int[n];for(int i=0;i<n;i++){arr[i] = new Random().nextInt(rangeR-rangeL)+rangeL;}return arr;}// 近乎有序的數組序列public static int[] generateRandomArrayNearOrder(int n, int swapTimes){int[] arr = new int[n];for(int i=0;i<n;i++){arr[i] = i;}for( int i = 0 ; i < swapTimes ; i ++ ){int posx = new Random().nextInt(n);int posy = new Random().nextInt(n);int temp = arr[posx];arr[posx] = arr[posy];arr[posy] = temp;}return arr;}// 插入排序 將數據插入到已經排好序的數據中static void insertionSort(int arr[], int n){for(int i=1;i<n;i++){//寫法1 // for(int j=i; j>0; j--){ // if(arr[j] < arr[j-1]){ // int temp = arr[j]; // arr[j] = arr[j-1]; // arr[j-1] = temp; // }else{ // break; // } // }// 寫法2 // for(int j=i; j>0 && arr[j] < arr[j-1]; j--){ // int temp = arr[j]; // arr[j] = arr[j-1]; // arr[j-1] = temp; // }// 寫法3int e = arr[i];int j;for(j=i; j>0 && arr[j-1]>e; j--){arr[j] = arr[j-1];}arr[j] = e;}}// 打印數組static void printArray(int arr[], int n) {for(int i=0; i<n; i++){System.out.println(arr[i]+" ");}}public static void main(String[] args){int size = 10000;//arr = generateRandomArray(size, 0, 100000);arr = generateRandomArrayNearOrder(size, 100);long startTime = System.currentTimeMillis();insertionSort(arr,size);long endTime = System.currentTimeMillis();System.out.println(endTime-startTime);//printArray(arr, size);} }?
總結
以上是生活随笔為你收集整理的数据结构:插入排序(Insertion sort)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据结构:选择排序(Selection
- 下一篇: 数据结构:O(nlogn)算法