// // main.m // 排序&二分法查找
#import "stdio.h"
// 选择排序1 int *sortSelect1(int arr[],int n){
for (int i=0; i < n; i++) { for (int j=i+1; j<n; j++) { if (arr>arr[j]) { int temp =arr; arr = arr[j]; arr[j] = temp; } } } int *p = arr; return p; }
// 选择排序2 int *sortSelect2(int arr[],int n){ int temp,min; for (int i=0; i<n; i++) { min = i; for (int j=min+1; j<n; j++) { if (arr[min]>arr[j]) { min = j; } } if (min != i) { temp = arr[min]; arr[min] = arr; arr = temp; } } int *p = arr; return p; }
//冒泡排序1 int *maopaosort1(int arr[],int n){
for (int i=0; i<n-1; i++) { for (int j=0; j<n-1-i; j++) { if (arr[j]>arr[j+1]) { int temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } }
int *p = arr; return p; }a
//冒泡排序2 int *maopaosort2(int arr[],int n){
for (int i=0; i<n-1; i++) { int k=1; // 用来控制数组是否已经排好序 for (int j=0; j<n-1-i; j++) { if (arr[j]>arr[j+1]) { int temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; k = 0; } } if (k) { break; } }
int *p = arr; return p; }
int main(int argc, const char * argv[]) {
int arr[]={9,6,3,5,1,2,3,7};
// sortSelect1(arr,8); // sortSelect2(arr,8); // maopaosort1(arr,8); maopaosort2(arr,8);
// 遍历数组 for (int k=0; k<8; k++) { printf("%d ",arr[k]); }
return 0; }
|