pragma mark 冒泡排序
pragma mark 概念
/*
#pragma 冒泡排序
特點:
是用相鄰的兩個元素進行比較,每完全比較完一次,最值出現(xiàn)在末尾 // 第一次得到最大的值
// 每次都是從0開始
規(guī)律:
比較次數(shù)
****
***
**
*
*/
pragma mark 代碼
#include <stdio.h>
int main()
{
#pragma mark 已知一個無序的數(shù)組,里面有5個元素,要求對數(shù)組進行排序
int nums[5] = {99,12,88,11,22};
#pragma mark 選擇排序
/*
for (int i = 0; i < length - 1 ; i++) {
for (int j = i; j< length - 1; j++) {
// printf("*");
printf("i = %i, j = %i\n ",i ,j); //選擇排序重點: 第一個數(shù) 和 所有的元素進行比較
// 區(qū)別
if (nums[i] > nums[j]) {
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}
// printf("\n");
}
*/
#pragma mark 排序前
// 動態(tài)獲取數(shù)量
int length = sizeof(nums)/sizeof(nums[0]);
for (int i = 0; i < length; i++) {
printf("nums[%i] = %i\n",i, nums[i]);
}
#pragma mark 冒泡排序
for (int i = 0; i < length - 1; i++)
{
for (int j = 0; j < length - 1 - i; j++) {
// printf("*");
// 獲取相鄰索引
printf("%i == %i \n",j,j+1); // 冒泡排序重點 : 每相鄰數(shù)進行比較
// 區(qū)別
if (nums[j]>nums[j+1]) {
// 第三變量 保存第一個變量先
int temp = nums[j];
// 將 第二個數(shù) 賦值給 第一個數(shù)
nums[j] = nums[j+1];
// 再講 第三變量 賦值給 第二個數(shù)
nums[j+1] = temp;
}
}
#pragma mark 之前學習的
/*
for (int j = i; j < 4; j++) {
// printf("*");
// 獲取相鄰索引
printf("%i == %i \n",j,j+1);
}
*/
// printf("\n");
}
printf("-------------\n");
#pragma mark 排序后
// 動態(tài)獲取數(shù)量
for (int i = 0; i < length; i++) {
printf("nums[%i] = %i\n",i, nums[i]);
}
return 0;
}
最后編輯于 :
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。