三種排序方法(c語言)

來源:互聯網
上載者:User

標籤:

 1 #include "stdio.h" 2 void main() 3 {void read_data(int a[],int n); 4  void write_data(int a[],int n); 5  void comp(int a[],int n); 6  void insert(int a[],int n);    7  void bubble(int a[],int n); 8  int i,n=0,a[200]; 9  printf("請輸入元素個數:");10  scanf("%d",&n);     11  printf("請選擇排序方法(輸入1選擇法,輸入2為插入法,輸入3位為冒泡法):");12  scanf("%d",&i);13  read_data(a,n);14  if(i==1)15    comp(a,n);16  if(i==2)17    insert(a,n);18  if(i==3)19    bubble(a,n);  20  write_data(a,n); 21 }22 23 void read_data(int a[],int n)24 {int i=0;25 26  printf("請輸入元素:");27  for(;i<n;i++)28      scanf("%d",&a[i]);29 }30 31 void comp(int a[],int n)32 { int i,j,t;33  for(i=0;i<(n-1);i++)34  for(j=i+1;j<n;j++)35     if(a[i]>a[j])36       {t=a[i];37        a[i]=a[j];38        a[j]=t;   39       }40 }41 42 void insert(int a[],int n)43 {int i=1,j=0,k,t;44  for(;i<n;i++)45   {for(j=0;j<i;j++)46       if(a[i]<a[j])47         {48          t=a[i];49          for(k=i;k>j;k--)50             a[k]=a[k-1];51          a[j]=t;52         }53   }54 }55 56 void bubble(int a[],int n)57 {int i,j,t;58  for(i=0;i<n;i++)59     for(j=0;j<(n-1);j++)60        if(a[j]>a[j+1])61          {t=a[j+1];62          a[j+1]=a[j];63           a[j]=t;   64          }65 }66 67 void write_data(int a[],int n)68 {int i=0;69  for(;i<n;i++)   70     printf("%d\n",a[i]);71 }


對於選擇法排序,就是固定一個元素,然後與其他元素依次比較,把大的(或小的)放後面,一次迴圈下來,最小(大)的1個元素就到了第一位了;然後固定下一個元素,迴圈下來第二小(大)的元素就到第二位了;繼續下去就排好了。
對於插入法排序,就是逐個把要插入的元素與已有的序列依次比較,按升序(或降序)把元素插進去,然後將原有序列的插入元素之後的元素依次後移一位,有多少要插入的元素就迴圈幾次。
對於冒泡法排序,就是依次比較相鄰的兩個元素,進行排序,一次迴圈下來,最大的(或最小的)就到了最後;然後再次重新迴圈,把所有上次迴圈的賦值都初始化,最後就把第二大的數排在了倒數第二位了,依次下去。

三種排序方法(c語言)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.