一、选择排序
1、Python
lst = [5, 2, 10, 15, 9, 1, 6]
print('排序前:{}'.format(' '.join([str(i) for i in lst])))
for i in range(len(lst) - 1):
for j in range(i + 1, len(lst)):
if lst[i] > lst[j]:
lst[i], lst[j] = lst[j], lst[i]
print('排序后:{}'.format(' '.join([str(i) for i in lst])))
运行效果:
2、Java
package net.dc.Test;
import java.util.Arrays;
public class SortArr {
public static void main(String[] args) {
Integer[] arr = {5, 2, 10, 5, 9, 1, 6};
System.out.print("排序前:");
Arrays.asList(arr).forEach(i -> System.out.print(i + " "));
sort(arr);
System.out.print("\n排序后:");
Arrays.asList(arr).forEach(i -> System.out.print(i + " "));
}
public static void sort(Integer[] arr) {
Integer temp;
for (int i = 0; i < arr.length - 1; i++) {
for (int j = i + 1; j < arr.length; j++) {
if (arr[i] > arr[j]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
}
运行效果:
3、C语言
#include <stdio.h>
void sort(int *, int);
int main() {
int arr[] = {5, 2, 10, 2, 8, 4, 6};
const int LEN = sizeof(arr) / sizeof(arr[0]);
printf("排序前:");
for (int i = 0; i < LEN; i++) {
printf("%d ", arr[i]);
}
sort(arr, LEN);
printf("\n排序后:");
for (int i = 0; i < LEN; i++) {
printf("%d ", arr[i]);
}
return 0;
}
void sort(int *pArr, int LEN) {
int temp;
for (int i = 0; i < LEN - 1; i++) {
for (int j = i + 1; j < LEN; j++) {
if (pArr[i] > pArr[j]) {
temp = pArr[i];
pArr[i] = pArr[j];
pArr[j] = temp;
}
}
}
}
运行效果:
二、冒泡排序
1、Python
lst = [5, 2, 10, 3, 7, 1, 3]
print('排序前:{}'.format(' '.join([str(i) for i in lst])))
for i in range(1, len(lst)):
for j in range(0, len(lst) - i):
if lst[j] > lst[j + 1]:
lst[j], lst[j + 1] = lst[j + 1], lst[j]
print('排序后:{}'.format(' '.join([str(i) for i in lst])))
运行效果:
2、Java
package net.dc.Test;
import java.util.Arrays;
public class SortArr_ {
public static void main(String[] args) {
Integer[] arr = {5, 2, 10, 6, 9, 19, 6};
System.out.print("排序前:");
Arrays.asList(arr).forEach(i -> System.out.print(i + " "));
sort(arr);
System.out.print("\n排序后:");
Arrays.asList(arr).forEach(i -> System.out.print(i + " "));
}
public static void sort(Integer[] arr) {
Integer temp;
for (int i = 1; i < arr.length; i++) {
for (int j = 0; j < arr.length - i; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
}
运行效果:
3、C语言
#include <stdio.h>
void sort(int *, int);
int main() {
int arr[] = {1, 2, 14, 10, 6, 4, 6};
const int LEN = sizeof(arr) / sizeof(arr[0]);
printf("排序前:");
for (int i = 0; i < LEN; i++) {
printf("%d ", arr[i]);
}
sort(arr, LEN);
printf("\n排序后:");
for (int i = 0; i < LEN; i++) {
printf("%d ", arr[i]);
}
return 0;
}
void sort(int *pArr, int LEN) {
int temp;
for (int i = 1; i < LEN; i++) {
for (int j = 0; j < LEN - i; j++) {
if (pArr[j] > pArr[j + 1]) {
temp = pArr[j];
pArr[j] = pArr[j + 1];
pArr[j + 1] = temp;
}
}
}
}
运行效果: