作者在 2013-09-02 09:05:46 发布以下内容
#include<stdio.h>
#include<stdlib.h>
#define LEN sizeof(arr)/sizeof(arr[0])
void swap(int *p , int *q)
{
int temp = *p;
*p = *q;
*q = temp;
}
void arr_print(int *arr, int len)
{
int i;
for (i=0; i<len; i++)
printf("%d ",arr[i]);
printf("\n");
}
void bubble_sort(int *arr)
{
int i,j;
for(j=0; j<9; j++)
for (i=0; i<9-j; i++)
{
if (arr[i]>arr[i+1])
{
swap(&arr[i],&arr[i+1]);
}
}
}
void quick_sort(int *arr, int len)
{
if (len == 0 || len == 1)
return ;
int pivot_idx = len/2;
int pivot = arr[pivot_idx];
int l = 0;
int r = len-1;
for (; arr[l]<pivot && l<r; l++)
;
for (; arr[r]>= pivot && l<r; r--)
;
arr[pivot_idx] = arr[l];
while (l < r)
{
arr[l] = arr[r];
for (; arr[l]<pivot && l<r; l++)
;
arr[r] = arr[l];
for (; arr[r]>=pivot && l<r; r--)
;
}
arr[l] = pivot;
quick_sort(arr,l);
quick_sort(arr+l, len-l-1);
}
void insert_sort(int * arr)
{
// i 是有序中的最后一个
// j 是无序中的第一个
int i, j, temp;
for (j=1; j<10; j++)
{
temp = arr[j];
for (i=j-1; i>=0 && temp<arr[i]; i--)
{
arr[i+1] = arr[i];
}
arr[i+1] = temp;
}
}
void select_sort(int arr[])
{
int min_idx, i, j;
for (i = 0; i<LEN; i++)
{
min_idx = i;
for (j=i; j<LEN;j++)
{
if(arr[j]<arr[min_idx])
{
min_idx = j;
}
}
swap(&arr[i], &arr[min_idx]);
}
}
int main()
{
int i,j;
int arr[] = { 3, 9, 2, 7, 10, 8, 4, 6, 5, 1};
bubble_sort(arr);
// quick_sort(arr, LEN);
// insert_sort(arr);
select_sort(arr);
arr_print(arr, LEN);
return 0;
}
#include<stdlib.h>
#define LEN sizeof(arr)/sizeof(arr[0])
void swap(int *p , int *q)
{
int temp = *p;
*p = *q;
*q = temp;
}
void arr_print(int *arr, int len)
{
int i;
for (i=0; i<len; i++)
printf("%d ",arr[i]);
printf("\n");
}
void bubble_sort(int *arr)
{
int i,j;
for(j=0; j<9; j++)
for (i=0; i<9-j; i++)
{
if (arr[i]>arr[i+1])
{
swap(&arr[i],&arr[i+1]);
}
}
}
void quick_sort(int *arr, int len)
{
if (len == 0 || len == 1)
return ;
int pivot_idx = len/2;
int pivot = arr[pivot_idx];
int l = 0;
int r = len-1;
for (; arr[l]<pivot && l<r; l++)
;
for (; arr[r]>= pivot && l<r; r--)
;
arr[pivot_idx] = arr[l];
while (l < r)
{
arr[l] = arr[r];
for (; arr[l]<pivot && l<r; l++)
;
arr[r] = arr[l];
for (; arr[r]>=pivot && l<r; r--)
;
}
arr[l] = pivot;
quick_sort(arr,l);
quick_sort(arr+l, len-l-1);
}
void insert_sort(int * arr)
{
// i 是有序中的最后一个
// j 是无序中的第一个
int i, j, temp;
for (j=1; j<10; j++)
{
temp = arr[j];
for (i=j-1; i>=0 && temp<arr[i]; i--)
{
arr[i+1] = arr[i];
}
arr[i+1] = temp;
}
}
void select_sort(int arr[])
{
int min_idx, i, j;
for (i = 0; i<LEN; i++)
{
min_idx = i;
for (j=i; j<LEN;j++)
{
if(arr[j]<arr[min_idx])
{
min_idx = j;
}
}
swap(&arr[i], &arr[min_idx]);
}
}
int main()
{
int i,j;
int arr[] = { 3, 9, 2, 7, 10, 8, 4, 6, 5, 1};
bubble_sort(arr);
// quick_sort(arr, LEN);
// insert_sort(arr);
select_sort(arr);
arr_print(arr, LEN);
return 0;
}