程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言學習筆記--選擇排序,插入排序

C語言學習筆記--選擇排序,插入排序

編輯:關於C語言

#include<stdio.h>



//插入排序,
void sortArray(int p[] , int n);
void insert(int p[],int a,int b);

//選擇排序
void selectedSort(int p[],int n);
void swap(int &p1,int &p2);

//預定義
#define ArrayCounts 9

int main(){
   int a[]={1,3,8,2,6,5,7,4,9};
   sortArray(a,ArrayCounts);
   for(int i =0; i<ArrayCounts;i++){
       printf(" %d ",a[i]);    
   }
   printf("\n");
   int b[]={1,3,8,2,6,5,7,4,9};
   selectedSort(b,ArrayCounts);
   for(int i =0; i<ArrayCounts;i++){
       printf(" %d ",b[i]);    
   }
   printf("\n");
   return 0;
}

void sortArray(int p[] , int n){
   for(int i =1;i<n;i++){
       for(int j=0;j<i;j++){

//找到需要插入的位置
           if(p[i]<p[j])
               insert(p,j,i);
       }
   }
}

//插入函數的具體實現
void insert(int p[],int a,int b){
   int temp=p[b];
   printf("temp:%d\n",temp);
   while(a<b){
       p[b]=p[b-1];
       b--;
   }
   p[a]=temp;
}

void selectedSort(int p[],int n){
   int index;
   for(int i=0;i<n;i++){

//每次找到最小值的下標
       index=i;
       for(int j=i+1;j<n;j++){
           if(p[index]>p[j])
               index=j;
       }

//將最小值放在最前面
       swap(p[i],p[index]);
   }
}

void swap(int &p1,int &p2){
   int temp=p1;
   p1=p2;
   p2=temp;
}

本文出自 “小宇2013” 博客,轉載請與作者聯系!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved