C語言排序類---冒泡排序(BubbleSort)指針實現

//冒泡排序(BubbleSort)
//100000個隨機數 ,共耗時40s 處理成功(效率低下) 
#include <stdio.h>
#include <windows.h>
#include <stdlib.h>
#define Number 100000 //隨機數的數量

void BubbleSort(int *Pointer,int n); //冒泡排序的函數
void Exchange(int *A,int *B); //冒泡排序函數--子函數

int main()
{
    int Array[Number];
    int i;
    for(i =0;i <Number;i++)
    {
          Array[i] = rand()%Number; //在NUMBER範圍內 產生這個範圍的隨機數
    }
    for(i =0;i <Number;i++)
    {
          printf("Array[%d] = %d \n",i,Array[i]);
    }
    printf("Now Array Proceeding ....\n");
   
    BubbleSort(Array,Number);
   
    for(i =0;i <Number;i++)
    {
          printf("Array[%d] = %d \n",i,Array[i]);
    }
    Sleep(100000);
    return 0;
}


//冒泡排序算法
void BubbleSort(int *Pointer,int n)
{
     int i,j;
     int m =n;
     for(i =0;i <n;i++)
     {
          for(j =0;j <m;j++)
          {
                if(*(Pointer +j)> *(Pointer +j +1))
                      Exchange(Pointer +j,Pointer +j +1);
          }
          m -= 1;
     }
}
//冒泡子程序--交換
void Exchange(int *A,int *B)
{
     int C = *A;
     *A = *B;
     *B = C;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章