最简单排序实现算法一
冒泡排序实现算法3
- 1 #include <stdio.h>
- 2 #include <stdlib.h>
- 3 #include <time.h>
- 4 #define MAX 10
- 5 int main()
- 6 {int i,j,temp;
- 7 srand(time(NULL));
- 8 int a[MAX];
- 9 for(i=0;i<=MAX-1;i++)
- 10 {
- 11 a[i]=rand()%100;
- 12 }
- 13 for(i=0;i<MAX-1;i++)
- 14 {for(j=i+1;j<=MAX-1;j++)
- 15 { if(a[i]>a[j])
- 16 { temp=a[i];
- 17 a[i]=a[j];
- 18 a[j]=temp;
- 19 }
- 20 }
- 21 }
- 22 for(i=0;i<MAX;i++)
- 23 {
- 24 printf("a[%d]=%d\t",i,a[i]);
- 25 }
- 26 return(0);
- 27 }
冒泡排序实现算法一
template <typename T>
void mySort(T *a, int len)
{
for (int i = 0; i < len - 1; i++)
{
for (int j = 0; j < len - 1 - i; j++)
{
if (a[j] > a[j + 1])
Swap<T>(a[j], a[j + 1]);
}
}
}
冒泡排序实现算法二
- 1 #include <stdio.h>
- 2 #include <stdlib.h>
- 3 #include <time.h>
- 4 #define MAX 10
- 5 int main()
- 6 {int i,j,temp;
- 7 srand(time(NULL));
- 8 int a[MAX];
- 9 for(i=0;i<=MAX-1;i++)
- 10 {
- 11 a[i]=rand()%100;
- 12 }
- 13 for(i=0;i<MAX-1;i++) //循环次数
- 14 {for(j=MAX-2;j>=i;j--) //每一轮排序的操作次数
- 15 { if(a[j]>a[j+1]) //从后往前交换
- 16 { temp=a[j];
- 17 a[j]=a[j+1];
- 18 a[j+1]=temp;
- 19 }
- 20 }
- 21 }
- 22 for(i=0;i<MAX;i++)
- 23 {
- 24 printf("a[%d]=%d\t",i,a[i]);
- 25 }
- 26 return(0);
- 27 }
冒泡排序实现算法3
- 1 #include <stdio.h>
- 2 #include <stdlib.h>
- 3 #include <time.h>
- 4 #define MAX 10
- 5 #define TURE 1
- 6 #define FALSE 0
- 7 typedef int Status;
- 8 int main()
- 9 {int i,j,temp;
- 10 Status flag=TURE;
- 11 srand(time(NULL));
- 12 int a[MAX];
- 13 for(i=0;i<=MAX-1;i++)
- 14 {
- 15 a[i]=rand()%100;
- 16 }
- 17 for(i=0;i<MAX-1 && flag;i++) //循环次数
- 18 {
- 19 flag=FALSE; //每轮排序后重置flag,若前几个数排序正常,则退出总的循环
- 20 for(j=MAX-2;j>=i;j--) //每一轮排序的操作次数
- 21 { if(a[j]>a[j+1]) //从后往前交换
- 22 { temp=a[j];
- 23 a[j]=a[j+1];
- 24 a[j+1]=temp;
- 25 flag=TURE;
- 26 }
- 28 }
- 29 }
- 30 for(i=0;i<MAX;i++)
- 31 {