几个简单的排序算法,快速,插入,冒泡

冒泡排序:

 1 def maopao(a):
 2     l=len(a)
 3     i=0
 4     while(i<l):
 5         t=0
 6         while(t<l-1-i):
 7             if (a[t]>a[t+1]):
 8                 a[t],a[t+1]=a[t+1],a[t]
 9             t=t+1
10         i=i+1
11     return a
 1 #include <stdio.h>
 2 int mao(int a[],int len){
 3     int i=len;
 4     int temp=0;
 5     for (;i<len;i--){
 6         int j=0;
 7         for(;j<len;j++){
 8             if(a[j]>a[j+1]){
 9                 temp=a[j];
10                 a[j]=a[j+1];
11                 a[j+1]=temp;
12             }
13         }
14     }
15     return a;
16 }

 

 插入:

 1 #include <stdio.h>
 2 
 3 int charu(int a[],int len) {
 4     int t=0;
 5     int temp=0;
 6     for (;t<len;t++){
 7         int j=t;
 8         for(;j<len;j++){
 9             if(a[j]>a[t]){
10                 temp=a[j];
11                 a[j]=a[t];
12                 a[t]=temp;
13             }
14         }
15         int i=0;
16         for(;i<len;i++){
17             printf("%d ",a[i]);
18         }
19         printf("\n");
20     }
21 }
 1 def charu(a):
 2     l=len(a)
 3     i=0
 4     while(i<l):
 5         t=i
 6         while(t<l-1):
 7             if(a[i]<a[t]):
 8                 a[i],a[t]=a[t],a[i]
 9             t=t+1
10         print(a)
11         i=i+1
12     return a

快速:

 1 #include<stdio.h>
 2 void quick(int *a, int start, int end)
 3 {
 4     if(start>=end)
 5     {
 6         return;
 7     }
 8     
 9     int i=start;
10     int j=end;
11     int key=a[start];
12     int temp=0;
13      
14     while(i<j)
15     {
16         while(i<j&&key<=a[j])
17         {
18             j--;
19         }
20         temp=a[j];
21         a[j]=a[i];
22         a[i]=temp; 
23         
24         while(i<j&&key>=a[i])
25         {
26             i++;
27         }
28         temp=a[j];
29         a[j]=a[i];
30         a[i]=temp;
31     }
32      
33     quick(a,start,i-1);
34     quick(a,i+1,end);
35 }

快速:

 1 def quick_sort(a,start,end):
 2     if start >=end:
 3         return
 4     mid = a[start]
 5     i = start
 6     j = end
 7     while i <j:
 8         while i < j and a[j] >= mid:
 9             j -= 1
10         a[i] = a[j]
11         while i < j and a[i] < mid:
12             i += 1
13         a[j] = a[i]
14         a[i] = mid
15         quick_sort(a, start, j-1)
16         quick_sort(a, i + 1, end)
 1 void quick(int *a, int start, int end)
 2 {
 3     if(start>=end)
 4     {
 5         return;
 6     }
 7     
 8     int i=start;
 9     int j=end;
10     int key=a[start];
11     int temp=0;
12      
13     while(i<j)
14     {
15         while(i<j&&key<=a[j])
16         {
17             j--;
18         }
19         temp=a[j];
20         a[j]=a[i];
21         a[i]=temp; 
22         
23         while(i<j&&key>=a[i])
24         {
25             i++;
26         }
27         temp=a[j];
28         a[j]=a[i];
29         a[i]=temp;
30     }
31      
32     quick(a,start,i-1);
33     quick(a,i+1,end);
34 }

 

20212301 郭

 

posted @ 2021-11-07 16:34  20212301guo  阅读(85)  评论(0)    收藏  举报