冒泡排序和插入排序
先用java写一遍
package sample_test;
import java.util.Random;
public class Sort {
public static void main(String[] args) {
Sort sort = new Sort();
int[] arr = sort.generateArr(10);
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
System.out.println();
for (int i = 0; i < sort.bubbles(arr).length; i++) {
System.out.print(arr[i]+" ");
}
System.out.println();
for (int i = 0; i < sort.insertSort(arr).length; i++) {
System.out.print(arr[i]+" ");
}
}
public int[] bubbles(int[] arr) {
for (int i = 0; i < arr.length-1; i++) {
for(int j=0 ; j < arr.length-1-i;j++) {
if(arr[j]>arr[j+1]) {
int num = arr[j];
arr[j] = arr[j+1];
arr[j+1] = num;
}
}
}
return arr;
}
public int[] insertSort(int[] arr) {
for (int i = 0; i < arr.length-1; i++) {
for(int j=i+1;j>0;j--) {
if(arr[j]<arr[j-1]) {
int num = arr[j];
arr[j] = arr[j-1];
arr[j-1] = arr[j];
}
}
}
return arr;
}
public int[] generateArr(int n) {
int[] arr = new int[n];
Random rd = new Random();
for (int i = 0; i < arr.length; i++) {
arr[i] = rd.nextInt(10);
}
return arr;
}
}
再用python写一遍
import random
def generateArr():
return [random.randrange(10) for i in range(7)]
def bubbles(arr):
for i in range(len(arr) - 1):
for j in range(len(arr) - 1 - i):
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
return arr
def insertSort(arr):
for i in range(len(arr) - 1):
j = i + 1
while j > 0:
if arr[j] < arr[j - 1]:
arr[j], arr[j - 1] = arr[j - 1], arr[j]
j -= 1
return arr
if __name__ == '__main__':
arr = generateArr()
print(arr)
print(bubbles(arr.copy()))
print(insertSort(arr.copy()))