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;
}
//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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.