日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

数据结构:插入排序(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)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。