数据结构和算法--排序篇(一边复习一边更新)
冒泡排序:
C++:
1 void bubble(int a[],int n){
2
3 //冒泡排序
4 for (int i=n-1;i>0;i--){
5 for(int j=0;j<i;j++){
6 if(a[j]>a[j+1]){
7 int temp=a[j];
8 a[j]=a[j+1];
9 a[j+1]=temp;
10
11
12 }
13
14
15 }
16
17
18 }
19
20 }
python:
if __name__ == '__main__':
#以main形式运行
a=[0,4,3,2,1]
def bubblesort(numbers):
#python for语句精髓所在 range(起点,开区间末点,步长)
for j in range(len(numbers)-1,-1,-1):
for i in range(j):
if numbers[i]>numbers[i+1]:
numbers[i],numbers[i+1] = numbers[i+1],numbers[i]
print(i,j)
print(numbers)
bubblesort(numbers=a)
print a
插入排序:
C++
void insertSort(int a[],int length){
int j;
for(int i=1;i<length;i++){
int temp =a[i];
for( j=i;j>0&&temp<a[j-1];j--){
a[j]=a[j-1];
}
a[j]=temp;
}
}
python
def insertsort(numbers):
for j in range(1,len(numbers),1):
temp=numbers[j]
#选择性插入或移位
for k in range(j,0,-1):
if temp>=numbers[k-1]:
numbers[k]=temp
break
numbers[k]=numbers[k-1]

浙公网安备 33010602011771号