实在是闲来无事,就写写排序算法吧。
1. 实现冒泡排序,python版本的:
# -*- coding: UTF-8 -*- import random list = [] for i in range(10): list.append(round(random.uniform(1,100),1)) def sort(arr): i = len(arr) while i >= 0: for j in range(0, i - 1): if arr[j] > arr[j + 1]: temp = arr[j] arr[j] = arr[j+1] arr[j+1] = temp i = i - 1 print list sort(list) print listc++版本的:
#include <iostream> #include <ctime> #include <cstdlib> using namespace std; void sort(int*, int n); int main(int argc, char** argv){ int a[10]; srand(std::time(0)); for(int i = 0; i < 10; i++){ a[i] = rand()0; cout << a[i] << endl; } sort(a, 10); cout << "after sort:" << endl; for(int i = 0; i < 10; i++){ cout << a[i] << endl; } } void sort(int* arr, int n){ for(int i = n; i > 0; i--) for(int j = 0; j < i - 1; j++) if(arr[j] > arr[j+1]){ int temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } }
2. 实现选择排序,python版本:
# -*- coding: UTF-8 -*- import random list = [] for i in range(10): list.append(random.randint(1,100)) def sort(arr): length = len(arr) for i in range(0,length): for j in range(i + 1,length): if arr[i] > arr[j]: temp = arr[i] arr[i] = arr[j] arr[j] = temp print list sort(list) print listc++版本的:
#include <iostream> #include <ctime> #include <cstdlib> using namespace std; void sort(int*, int n); int main(int argc, char** argv){ int a[10]; srand(std::time(0)); for(int i = 0; i < 10; i++){ a[i] = rand()0; cout << a[i] << endl; } sort(a, 10); cout << "after sort:" << endl; for(int i = 0; i < 10; i++){ cout << a[i] << endl; } } void sort(int* arr, int n){ for(int i = 0; i < n - 1; i++) for(int j = i + 1; j < n; j++){ if(arr[i] > arr[j]){ int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } }