-(void)mySort:(NSMutableArray *)mutArray{
id tmpObj = nil;
unsigned long flag = mutArray.count-1;//flag :最大脚标while (flag > 0) {
int k = flag;
flag = 0;
for (int j = 0 ; j < k ; j++) {
int order = NSOrderedAscending;// 或 NSOrderedDescending
if ([[mutArray[j] description] compare:[mutArray[j+1] description]] == -order) {
tmpObj = mutArray[j];mutArray[j] = mutArray[j+1];mutArray[j+1] = tmpObj;flag = j;
}}
}}
延伸:C语言的冒泡排序:(1)冒泡法对一维数组中的元素进行排序void sort(int arr[],int arr_len)
{
for(int i=0;i<arr_len-1;i++)//外层循环{
for(int j=0;j<arr_len-1-i;j++)//借助j实现一趟的次数{
if(arr[j]>arr[j+1]){
int temp=0;temp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;
}}
}}
(2)用指针数组给字符串排序
void sort_a(char * name[],int n){
char *temp;
for(int i=0;i<n-1;i++){
for(int j=0;j<n-1-i;j++){
if(strcmp(name[j], name[j+1])>0)
{
temp=name[j];name[j]=name[j+1];name[j+1]=temp;
}}
}}
(3)给字符串数组排序
void rang(char str[][20],int n){
for(int i=0;i<n-1;i++){
for(int j=0;j<n-1-i;j++){
int result=strcmp(str[j],str[j+1]);if(result>=0)
{
char temp[20];strcpy(temp, str[j]);strcpy(str[j], str[j+1]);strcpy(str[j+1], temp);
}}
}}